/*******************************************************************************
 * Copyright (c) 2022 BestSolution.at and others.
 *  
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v.2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0.
 *  
 * SPDX-License-Identifier: EPL-2.0
 *  
 * Contributors:
 *     BestSolution.at - initial API and implementation
 *******************************************************************************/
/*
 * generated by Xtext
 */
package org.eclipse.fx.ide.rrobot.dsl.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class RTaskGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class RobotTaskElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.RobotTask");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRobotTaskAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cRobotTaskKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cVariablesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
		private final Assignment cVariablesAssignment_3_3 = (Assignment)cGroup_3.eContents().get(3);
		private final RuleCall cVariablesVariableParserRuleCall_3_3_0 = (RuleCall)cVariablesAssignment_3_3.eContents().get(0);
		private final Group cGroup_3_4 = (Group)cGroup_3.eContents().get(4);
		private final Keyword cCommaKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
		private final Assignment cVariablesAssignment_3_4_1 = (Assignment)cGroup_3_4.eContents().get(1);
		private final RuleCall cVariablesVariableParserRuleCall_3_4_1_0 = (RuleCall)cVariablesAssignment_3_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3_5 = (Keyword)cGroup_3.eContents().get(5);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cProjectsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Assignment cProjectsAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cProjectsGenericProjectParserRuleCall_4_3_0 = (RuleCall)cProjectsAssignment_4_3.eContents().get(0);
		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
		private final Keyword cCommaKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
		private final Assignment cProjectsAssignment_4_4_1 = (Assignment)cGroup_4_4.eContents().get(1);
		private final RuleCall cProjectsGenericProjectParserRuleCall_4_4_1_0 = (RuleCall)cProjectsAssignment_4_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_5 = (Keyword)cGroup_4.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//RobotTask task::RobotTask:
		//	{task::RobotTask}
		//	'RobotTask'
		//	'{' ('variables' '=' '{' variables+=Variable ("," variables+=Variable)* '}')? ('projects' '=' '{'
		//	projects+=GenericProject ("," projects+=GenericProject)* '}')?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{task::RobotTask} 'RobotTask' '{' ('variables' '=' '{' variables+=Variable ("," variables+=Variable)* '}')? ('projects'
		//'=' '{' projects+=GenericProject ("," projects+=GenericProject)* '}')? '}'
		public Group getGroup() { return cGroup; }

		//{task::RobotTask}
		public Action getRobotTaskAction_0() { return cRobotTaskAction_0; }

		//'RobotTask'
		public Keyword getRobotTaskKeyword_1() { return cRobotTaskKeyword_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//('variables' '=' '{' variables+=Variable ("," variables+=Variable)* '}')?
		public Group getGroup_3() { return cGroup_3; }

		//'variables'
		public Keyword getVariablesKeyword_3_0() { return cVariablesKeyword_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_2() { return cLeftCurlyBracketKeyword_3_2; }

		//variables+=Variable
		public Assignment getVariablesAssignment_3_3() { return cVariablesAssignment_3_3; }

		//Variable
		public RuleCall getVariablesVariableParserRuleCall_3_3_0() { return cVariablesVariableParserRuleCall_3_3_0; }

		//("," variables+=Variable)*
		public Group getGroup_3_4() { return cGroup_3_4; }

		//","
		public Keyword getCommaKeyword_3_4_0() { return cCommaKeyword_3_4_0; }

		//variables+=Variable
		public Assignment getVariablesAssignment_3_4_1() { return cVariablesAssignment_3_4_1; }

		//Variable
		public RuleCall getVariablesVariableParserRuleCall_3_4_1_0() { return cVariablesVariableParserRuleCall_3_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_5() { return cRightCurlyBracketKeyword_3_5; }

		//('projects' '=' '{' projects+=GenericProject ("," projects+=GenericProject)* '}')?
		public Group getGroup_4() { return cGroup_4; }

		//'projects'
		public Keyword getProjectsKeyword_4_0() { return cProjectsKeyword_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4_2() { return cLeftCurlyBracketKeyword_4_2; }

		//projects+=GenericProject
		public Assignment getProjectsAssignment_4_3() { return cProjectsAssignment_4_3; }

		//GenericProject
		public RuleCall getProjectsGenericProjectParserRuleCall_4_3_0() { return cProjectsGenericProjectParserRuleCall_4_3_0; }

		//("," projects+=GenericProject)*
		public Group getGroup_4_4() { return cGroup_4_4; }

		//","
		public Keyword getCommaKeyword_4_4_0() { return cCommaKeyword_4_4_0; }

		//projects+=GenericProject
		public Assignment getProjectsAssignment_4_4_1() { return cProjectsAssignment_4_4_1; }

		//GenericProject
		public RuleCall getProjectsGenericProjectParserRuleCall_4_4_1_0() { return cProjectsGenericProjectParserRuleCall_4_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4_5() { return cRightCurlyBracketKeyword_4_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class VariableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Variable");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDescriptionAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDescriptionSL_DOCTerminalRuleCall_0_0 = (RuleCall)cDescriptionAssignment_0.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cTypeTypeEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
		private final Assignment cKeyAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cKeySTRINGTerminalRuleCall_2_0 = (RuleCall)cKeyAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cDefaultKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cDefaultValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cDefaultValueSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cDefaultValueAssignment_3_1.eContents().get(0);
		
		//Variable task::Variable:
		//	description=SL_DOC
		//	type=Type key=STRING ('default' defaultValue=STRING)?;
		@Override public ParserRule getRule() { return rule; }

		//description=SL_DOC type=Type key=STRING ('default' defaultValue=STRING)?
		public Group getGroup() { return cGroup; }

		//description=SL_DOC
		public Assignment getDescriptionAssignment_0() { return cDescriptionAssignment_0; }

		//SL_DOC
		public RuleCall getDescriptionSL_DOCTerminalRuleCall_0_0() { return cDescriptionSL_DOCTerminalRuleCall_0_0; }

		//type=Type
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//Type
		public RuleCall getTypeTypeEnumRuleCall_1_0() { return cTypeTypeEnumRuleCall_1_0; }

		//key=STRING
		public Assignment getKeyAssignment_2() { return cKeyAssignment_2; }

		//STRING
		public RuleCall getKeySTRINGTerminalRuleCall_2_0() { return cKeySTRINGTerminalRuleCall_2_0; }

		//('default' defaultValue=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//'default'
		public Keyword getDefaultKeyword_3_0() { return cDefaultKeyword_3_0; }

		//defaultValue=STRING
		public Assignment getDefaultValueAssignment_3_1() { return cDefaultValueAssignment_3_1; }

		//STRING
		public RuleCall getDefaultValueSTRINGTerminalRuleCall_3_1_0() { return cDefaultValueSTRINGTerminalRuleCall_3_1_0; }
	}

	public class GenericProjectElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.GenericProject");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cProjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cBundleProjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cFeatureProjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		//GenericProject task::Project:
		//	Project | BundleProject | FeatureProject;
		@Override public ParserRule getRule() { return rule; }

		//Project | BundleProject | FeatureProject
		public Alternatives getAlternatives() { return cAlternatives; }

		//Project
		public RuleCall getProjectParserRuleCall_0() { return cProjectParserRuleCall_0; }

		//BundleProject
		public RuleCall getBundleProjectParserRuleCall_1() { return cBundleProjectParserRuleCall_1; }

		//FeatureProject
		public RuleCall getFeatureProjectParserRuleCall_2() { return cFeatureProjectParserRuleCall_2; }
	}

	public class ResourceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Resource");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cFolderParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cTemplatedFileParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDataFileParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cURLFileParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cDynamicFileParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cManifestFileParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cProductFileFeaturebaseParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cPluginXMLFileParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cComponentDefinitionFileParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		
		//Resource task::Resource:
		//	Folder | TemplatedFile | DataFile | URLFile | DynamicFile | ManifestFile | ProductFileFeaturebase | PluginXMLFile |
		//	ComponentDefinitionFile;
		@Override public ParserRule getRule() { return rule; }

		//Folder | TemplatedFile | DataFile | URLFile | DynamicFile | ManifestFile | ProductFileFeaturebase | PluginXMLFile |
		//ComponentDefinitionFile
		public Alternatives getAlternatives() { return cAlternatives; }

		//Folder
		public RuleCall getFolderParserRuleCall_0() { return cFolderParserRuleCall_0; }

		//TemplatedFile
		public RuleCall getTemplatedFileParserRuleCall_1() { return cTemplatedFileParserRuleCall_1; }

		//DataFile
		public RuleCall getDataFileParserRuleCall_2() { return cDataFileParserRuleCall_2; }

		//URLFile
		public RuleCall getURLFileParserRuleCall_3() { return cURLFileParserRuleCall_3; }

		//DynamicFile
		public RuleCall getDynamicFileParserRuleCall_4() { return cDynamicFileParserRuleCall_4; }

		//ManifestFile
		public RuleCall getManifestFileParserRuleCall_5() { return cManifestFileParserRuleCall_5; }

		//ProductFileFeaturebase
		public RuleCall getProductFileFeaturebaseParserRuleCall_6() { return cProductFileFeaturebaseParserRuleCall_6; }

		//PluginXMLFile
		public RuleCall getPluginXMLFileParserRuleCall_7() { return cPluginXMLFileParserRuleCall_7; }

		//ComponentDefinitionFile
		public RuleCall getComponentDefinitionFileParserRuleCall_8() { return cComponentDefinitionFileParserRuleCall_8; }
	}

	public class ProjectElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Project");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cProjectAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSimpleProjectKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cResourcesKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Assignment cResourcesAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cResourcesResourceParserRuleCall_4_3_0 = (RuleCall)cResourcesAssignment_4_3.eContents().get(0);
		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
		private final Keyword cCommaKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
		private final Assignment cResourcesAssignment_4_4_1 = (Assignment)cGroup_4_4.eContents().get(1);
		private final RuleCall cResourcesResourceParserRuleCall_4_4_1_0 = (RuleCall)cResourcesAssignment_4_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_5 = (Keyword)cGroup_4.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cExcludedIfKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0 = (RuleCall)cExcludeExpressionAssignment_6_1.eContents().get(0);
		
		//Project task::Project:
		//	{task::Project}
		//	'SimpleProject' name=EString
		//	'{' ('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{task::Project} 'SimpleProject' name=EString '{' ('resources' '=' '{' resources+=Resource ("," resources+=Resource)*
		//'}')? '}' ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{task::Project}
		public Action getProjectAction_0() { return cProjectAction_0; }

		//'SimpleProject'
		public Keyword getSimpleProjectKeyword_1() { return cSimpleProjectKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
		public Group getGroup_4() { return cGroup_4; }

		//'resources'
		public Keyword getResourcesKeyword_4_0() { return cResourcesKeyword_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4_2() { return cLeftCurlyBracketKeyword_4_2; }

		//resources+=Resource
		public Assignment getResourcesAssignment_4_3() { return cResourcesAssignment_4_3; }

		//Resource
		public RuleCall getResourcesResourceParserRuleCall_4_3_0() { return cResourcesResourceParserRuleCall_4_3_0; }

		//("," resources+=Resource)*
		public Group getGroup_4_4() { return cGroup_4_4; }

		//","
		public Keyword getCommaKeyword_4_4_0() { return cCommaKeyword_4_4_0; }

		//resources+=Resource
		public Assignment getResourcesAssignment_4_4_1() { return cResourcesAssignment_4_4_1; }

		//Resource
		public RuleCall getResourcesResourceParserRuleCall_4_4_1_0() { return cResourcesResourceParserRuleCall_4_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4_5() { return cRightCurlyBracketKeyword_4_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_6() { return cGroup_6; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_6_0() { return cExcludedIfKeyword_6_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_6_1() { return cExcludeExpressionAssignment_6_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_6_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0; }
	}

	public class EStringElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.EString");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSTRINGTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cIDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//EString:
		//	STRING | ID;
		@Override public ParserRule getRule() { return rule; }

		//STRING | ID
		public Alternatives getAlternatives() { return cAlternatives; }

		//STRING
		public RuleCall getSTRINGTerminalRuleCall_0() { return cSTRINGTerminalRuleCall_0; }

		//ID
		public RuleCall getIDTerminalRuleCall_1() { return cIDTerminalRuleCall_1; }
	}

	public class FolderElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Folder");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cFolderAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cFolderKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cChildrenKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Keyword cEqualsSignKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
		private final Keyword cLeftCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
		private final Assignment cChildrenAssignment_3_4 = (Assignment)cGroup_3.eContents().get(4);
		private final RuleCall cChildrenResourceParserRuleCall_3_4_0 = (RuleCall)cChildrenAssignment_3_4.eContents().get(0);
		private final Group cGroup_3_5 = (Group)cGroup_3.eContents().get(5);
		private final Keyword cCommaKeyword_3_5_0 = (Keyword)cGroup_3_5.eContents().get(0);
		private final Assignment cChildrenAssignment_3_5_1 = (Assignment)cGroup_3_5.eContents().get(1);
		private final RuleCall cChildrenResourceParserRuleCall_3_5_1_0 = (RuleCall)cChildrenAssignment_3_5_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3_6 = (Keyword)cGroup_3.eContents().get(6);
		private final Keyword cRightCurlyBracketKeyword_3_7 = (Keyword)cGroup_3.eContents().get(7);
		
		//Folder task::Folder:
		//	{task::Folder}
		//	'Folder'
		//	name=EString ('{'
		//	'children' '=' '{' children+=Resource ("," children+=Resource)* '}'
		//	'}')?;
		@Override public ParserRule getRule() { return rule; }

		//{task::Folder} 'Folder' name=EString ('{' 'children' '=' '{' children+=Resource ("," children+=Resource)* '}' '}')?
		public Group getGroup() { return cGroup; }

		//{task::Folder}
		public Action getFolderAction_0() { return cFolderAction_0; }

		//'Folder'
		public Keyword getFolderKeyword_1() { return cFolderKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//('{' 'children' '=' '{' children+=Resource ("," children+=Resource)* '}' '}')?
		public Group getGroup_3() { return cGroup_3; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }

		//'children'
		public Keyword getChildrenKeyword_3_1() { return cChildrenKeyword_3_1; }

		//'='
		public Keyword getEqualsSignKeyword_3_2() { return cEqualsSignKeyword_3_2; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_3() { return cLeftCurlyBracketKeyword_3_3; }

		//children+=Resource
		public Assignment getChildrenAssignment_3_4() { return cChildrenAssignment_3_4; }

		//Resource
		public RuleCall getChildrenResourceParserRuleCall_3_4_0() { return cChildrenResourceParserRuleCall_3_4_0; }

		//("," children+=Resource)*
		public Group getGroup_3_5() { return cGroup_3_5; }

		//","
		public Keyword getCommaKeyword_3_5_0() { return cCommaKeyword_3_5_0; }

		//children+=Resource
		public Assignment getChildrenAssignment_3_5_1() { return cChildrenAssignment_3_5_1; }

		//Resource
		public RuleCall getChildrenResourceParserRuleCall_3_5_1_0() { return cChildrenResourceParserRuleCall_3_5_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_6() { return cRightCurlyBracketKeyword_3_6; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_7() { return cRightCurlyBracketKeyword_3_7; }
	}

	public class TemplatedFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.TemplatedFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cTemplatedFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cTemplatedFileKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cGeneratorTypeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cGeneratorTypeAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cGeneratorTypeEStringParserRuleCall_4_2_0 = (RuleCall)cGeneratorTypeAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cExcludedIfKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0 = (RuleCall)cExcludeExpressionAssignment_6_1.eContents().get(0);
		
		//TemplatedFile task::TemplatedFile:
		//	{task::TemplatedFile}
		//	'TemplatedFile'
		//	name=EString
		//	'{' ('generatorType' '=' generatorType=EString)?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{task::TemplatedFile} 'TemplatedFile' name=EString '{' ('generatorType' '=' generatorType=EString)? '}' ('excluded-if'
		//excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{task::TemplatedFile}
		public Action getTemplatedFileAction_0() { return cTemplatedFileAction_0; }

		//'TemplatedFile'
		public Keyword getTemplatedFileKeyword_1() { return cTemplatedFileKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//('generatorType' '=' generatorType=EString)?
		public Group getGroup_4() { return cGroup_4; }

		//'generatorType'
		public Keyword getGeneratorTypeKeyword_4_0() { return cGeneratorTypeKeyword_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//generatorType=EString
		public Assignment getGeneratorTypeAssignment_4_2() { return cGeneratorTypeAssignment_4_2; }

		//EString
		public RuleCall getGeneratorTypeEStringParserRuleCall_4_2_0() { return cGeneratorTypeEStringParserRuleCall_4_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_6() { return cGroup_6; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_6_0() { return cExcludedIfKeyword_6_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_6_1() { return cExcludeExpressionAssignment_6_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_6_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0; }
	}

	public class DataFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.DataFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDataFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cDataFileKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cContentKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cContentAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cContentEByteArrayParserRuleCall_4_2_0 = (RuleCall)cContentAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cExcludedIfKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0 = (RuleCall)cExcludeExpressionAssignment_6_1.eContents().get(0);
		
		//DataFile task::DataFile:
		//	{task::DataFile}
		//	'DataFile'
		//	name=EString
		//	'{' ('content' '=' content=EByteArray)?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{task::DataFile} 'DataFile' name=EString '{' ('content' '=' content=EByteArray)? '}' ('excluded-if'
		//excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{task::DataFile}
		public Action getDataFileAction_0() { return cDataFileAction_0; }

		//'DataFile'
		public Keyword getDataFileKeyword_1() { return cDataFileKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//('content' '=' content=EByteArray)?
		public Group getGroup_4() { return cGroup_4; }

		//'content'
		public Keyword getContentKeyword_4_0() { return cContentKeyword_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//content=EByteArray
		public Assignment getContentAssignment_4_2() { return cContentAssignment_4_2; }

		//EByteArray
		public RuleCall getContentEByteArrayParserRuleCall_4_2_0() { return cContentEByteArrayParserRuleCall_4_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_6() { return cGroup_6; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_6_0() { return cExcludedIfKeyword_6_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_6_1() { return cExcludeExpressionAssignment_6_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_6_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0; }
	}

	public class URLFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.URLFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cURLFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cURLFileKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Assignment cUriAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cUriEStringParserRuleCall_3_0 = (RuleCall)cUriAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cExcludedIfKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_4_1_0 = (RuleCall)cExcludeExpressionAssignment_4_1.eContents().get(0);
		
		//URLFile task::URLFile:
		//	{task::URLFile}
		//	'URLFile'
		//	name=EString uri=EString ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{task::URLFile} 'URLFile' name=EString uri=EString ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{task::URLFile}
		public Action getURLFileAction_0() { return cURLFileAction_0; }

		//'URLFile'
		public Keyword getURLFileKeyword_1() { return cURLFileKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//uri=EString
		public Assignment getUriAssignment_3() { return cUriAssignment_3; }

		//EString
		public RuleCall getUriEStringParserRuleCall_3_0() { return cUriEStringParserRuleCall_3_0; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_4() { return cGroup_4; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_4_0() { return cExcludedIfKeyword_4_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_4_1() { return cExcludeExpressionAssignment_4_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_4_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_4_1_0; }
	}

	public class DynamicFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.DynamicFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDynamicFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cDynamicFileKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cGeneratedFromKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cExecutionURIAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cExecutionURISTRINGTerminalRuleCall_4_0 = (RuleCall)cExecutionURIAssignment_4.eContents().get(0);
		private final Keyword cByKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cTypeAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cTypeSTRINGTerminalRuleCall_6_0 = (RuleCall)cTypeAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cLeftCurlyBracketKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cVariablesAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cVariablesVariableParserRuleCall_7_1_0 = (RuleCall)cVariablesAssignment_7_1.eContents().get(0);
		private final Group cGroup_7_2 = (Group)cGroup_7.eContents().get(2);
		private final Keyword cCommaKeyword_7_2_0 = (Keyword)cGroup_7_2.eContents().get(0);
		private final Assignment cVariablesAssignment_7_2_1 = (Assignment)cGroup_7_2.eContents().get(1);
		private final RuleCall cVariablesVariableParserRuleCall_7_2_1_0 = (RuleCall)cVariablesAssignment_7_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7_3 = (Keyword)cGroup_7.eContents().get(3);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cExcludedIfKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_8_1_0 = (RuleCall)cExcludeExpressionAssignment_8_1.eContents().get(0);
		
		//DynamicFile task::DynamicFile:
		//	{task::DynamicFile}
		//	'DynamicFile' name=EString 'generated-from' executionURI=STRING 'by' type=STRING ('{' variables+=Variable (','
		//	variables+=Variable)* '}')? ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{task::DynamicFile} 'DynamicFile' name=EString 'generated-from' executionURI=STRING 'by' type=STRING ('{'
		//variables+=Variable (',' variables+=Variable)* '}')? ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{task::DynamicFile}
		public Action getDynamicFileAction_0() { return cDynamicFileAction_0; }

		//'DynamicFile'
		public Keyword getDynamicFileKeyword_1() { return cDynamicFileKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'generated-from'
		public Keyword getGeneratedFromKeyword_3() { return cGeneratedFromKeyword_3; }

		//executionURI=STRING
		public Assignment getExecutionURIAssignment_4() { return cExecutionURIAssignment_4; }

		//STRING
		public RuleCall getExecutionURISTRINGTerminalRuleCall_4_0() { return cExecutionURISTRINGTerminalRuleCall_4_0; }

		//'by'
		public Keyword getByKeyword_5() { return cByKeyword_5; }

		//type=STRING
		public Assignment getTypeAssignment_6() { return cTypeAssignment_6; }

		//STRING
		public RuleCall getTypeSTRINGTerminalRuleCall_6_0() { return cTypeSTRINGTerminalRuleCall_6_0; }

		//('{' variables+=Variable (',' variables+=Variable)* '}')?
		public Group getGroup_7() { return cGroup_7; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_7_0() { return cLeftCurlyBracketKeyword_7_0; }

		//variables+=Variable
		public Assignment getVariablesAssignment_7_1() { return cVariablesAssignment_7_1; }

		//Variable
		public RuleCall getVariablesVariableParserRuleCall_7_1_0() { return cVariablesVariableParserRuleCall_7_1_0; }

		//(',' variables+=Variable)*
		public Group getGroup_7_2() { return cGroup_7_2; }

		//','
		public Keyword getCommaKeyword_7_2_0() { return cCommaKeyword_7_2_0; }

		//variables+=Variable
		public Assignment getVariablesAssignment_7_2_1() { return cVariablesAssignment_7_2_1; }

		//Variable
		public RuleCall getVariablesVariableParserRuleCall_7_2_1_0() { return cVariablesVariableParserRuleCall_7_2_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_7_3() { return cRightCurlyBracketKeyword_7_3; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_8() { return cGroup_8; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_8_0() { return cExcludedIfKeyword_8_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_8_1() { return cExcludeExpressionAssignment_8_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_8_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_8_1_0; }
	}

	public class ComponentDefinitionFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ComponentDefinitionFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cComponentDefinitionFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cComponentDefinitionKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
		private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
		private final Keyword cNameKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_0_1 = (Keyword)cGroup_4_0.eContents().get(1);
		private final Assignment cIdAssignment_4_0_2 = (Assignment)cGroup_4_0.eContents().get(2);
		private final RuleCall cIdEStringParserRuleCall_4_0_2_0 = (RuleCall)cIdAssignment_4_0_2.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
		private final Keyword cClassKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
		private final Assignment cComponentClassAssignment_4_1_2 = (Assignment)cGroup_4_1.eContents().get(2);
		private final RuleCall cComponentClassEStringParserRuleCall_4_1_2_0 = (RuleCall)cComponentClassAssignment_4_1_2.eContents().get(0);
		private final Keyword cServicesKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cEqualsSignKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cLeftCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Assignment cServiceInterfaceListAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cServiceInterfaceListEStringParserRuleCall_8_0 = (RuleCall)cServiceInterfaceListAssignment_8.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cCommaKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cServiceInterfaceListAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final RuleCall cServiceInterfaceListEStringParserRuleCall_9_1_0 = (RuleCall)cServiceInterfaceListAssignment_9_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
		private final Keyword cReferencesKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Keyword cEqualsSignKeyword_12 = (Keyword)cGroup.eContents().get(12);
		private final Keyword cLeftCurlyBracketKeyword_13 = (Keyword)cGroup.eContents().get(13);
		private final Assignment cReferenceListAssignment_14 = (Assignment)cGroup.eContents().get(14);
		private final RuleCall cReferenceListComponentReferenceParserRuleCall_14_0 = (RuleCall)cReferenceListAssignment_14.eContents().get(0);
		private final Group cGroup_15 = (Group)cGroup.eContents().get(15);
		private final Keyword cCommaKeyword_15_0 = (Keyword)cGroup_15.eContents().get(0);
		private final Assignment cReferenceListAssignment_15_1 = (Assignment)cGroup_15.eContents().get(1);
		private final RuleCall cReferenceListComponentReferenceParserRuleCall_15_1_0 = (RuleCall)cReferenceListAssignment_15_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16);
		private final Keyword cRightCurlyBracketKeyword_17 = (Keyword)cGroup.eContents().get(17);
		
		//ComponentDefinitionFile bundle::ComponentDefinitionFile:
		//	{bundle::ComponentDefinitionFile}
		//	'ComponentDefinition' name=EString '{' ('name' '=' id=EString
		//	&
		//	'class' '=' componentClass=EString)
		//	'services' '=' '{' serviceInterfaceList+=EString (',' serviceInterfaceList+=EString)* '}'
		//	'references' '=' '{' referenceList+=ComponentReference (',' referenceList+=ComponentReference)* '}'
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ComponentDefinitionFile} 'ComponentDefinition' name=EString '{' ('name' '=' id=EString & 'class' '='
		//componentClass=EString) 'services' '=' '{' serviceInterfaceList+=EString (',' serviceInterfaceList+=EString)* '}'
		//'references' '=' '{' referenceList+=ComponentReference (',' referenceList+=ComponentReference)* '}' '}'
		public Group getGroup() { return cGroup; }

		//{bundle::ComponentDefinitionFile}
		public Action getComponentDefinitionFileAction_0() { return cComponentDefinitionFileAction_0; }

		//'ComponentDefinition'
		public Keyword getComponentDefinitionKeyword_1() { return cComponentDefinitionKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//'name' '=' id=EString & 'class' '=' componentClass=EString
		public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }

		//'name' '=' id=EString
		public Group getGroup_4_0() { return cGroup_4_0; }

		//'name'
		public Keyword getNameKeyword_4_0_0() { return cNameKeyword_4_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_0_1() { return cEqualsSignKeyword_4_0_1; }

		//id=EString
		public Assignment getIdAssignment_4_0_2() { return cIdAssignment_4_0_2; }

		//EString
		public RuleCall getIdEStringParserRuleCall_4_0_2_0() { return cIdEStringParserRuleCall_4_0_2_0; }

		//'class' '=' componentClass=EString
		public Group getGroup_4_1() { return cGroup_4_1; }

		//'class'
		public Keyword getClassKeyword_4_1_0() { return cClassKeyword_4_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1_1() { return cEqualsSignKeyword_4_1_1; }

		//componentClass=EString
		public Assignment getComponentClassAssignment_4_1_2() { return cComponentClassAssignment_4_1_2; }

		//EString
		public RuleCall getComponentClassEStringParserRuleCall_4_1_2_0() { return cComponentClassEStringParserRuleCall_4_1_2_0; }

		//'services'
		public Keyword getServicesKeyword_5() { return cServicesKeyword_5; }

		//'='
		public Keyword getEqualsSignKeyword_6() { return cEqualsSignKeyword_6; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_7() { return cLeftCurlyBracketKeyword_7; }

		//serviceInterfaceList+=EString
		public Assignment getServiceInterfaceListAssignment_8() { return cServiceInterfaceListAssignment_8; }

		//EString
		public RuleCall getServiceInterfaceListEStringParserRuleCall_8_0() { return cServiceInterfaceListEStringParserRuleCall_8_0; }

		//(',' serviceInterfaceList+=EString)*
		public Group getGroup_9() { return cGroup_9; }

		//','
		public Keyword getCommaKeyword_9_0() { return cCommaKeyword_9_0; }

		//serviceInterfaceList+=EString
		public Assignment getServiceInterfaceListAssignment_9_1() { return cServiceInterfaceListAssignment_9_1; }

		//EString
		public RuleCall getServiceInterfaceListEStringParserRuleCall_9_1_0() { return cServiceInterfaceListEStringParserRuleCall_9_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }

		//'references'
		public Keyword getReferencesKeyword_11() { return cReferencesKeyword_11; }

		//'='
		public Keyword getEqualsSignKeyword_12() { return cEqualsSignKeyword_12; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_13() { return cLeftCurlyBracketKeyword_13; }

		//referenceList+=ComponentReference
		public Assignment getReferenceListAssignment_14() { return cReferenceListAssignment_14; }

		//ComponentReference
		public RuleCall getReferenceListComponentReferenceParserRuleCall_14_0() { return cReferenceListComponentReferenceParserRuleCall_14_0; }

		//(',' referenceList+=ComponentReference)*
		public Group getGroup_15() { return cGroup_15; }

		//','
		public Keyword getCommaKeyword_15_0() { return cCommaKeyword_15_0; }

		//referenceList+=ComponentReference
		public Assignment getReferenceListAssignment_15_1() { return cReferenceListAssignment_15_1; }

		//ComponentReference
		public RuleCall getReferenceListComponentReferenceParserRuleCall_15_1_0() { return cReferenceListComponentReferenceParserRuleCall_15_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_16() { return cRightCurlyBracketKeyword_16; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_17() { return cRightCurlyBracketKeyword_17; }
	}

	public class ComponentReferenceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ComponentReference");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cComponentReferenceAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
		private final Keyword cBindKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_0_1 = (Keyword)cGroup_3_0.eContents().get(1);
		private final Assignment cBindAssignment_3_0_2 = (Assignment)cGroup_3_0.eContents().get(2);
		private final RuleCall cBindIDTerminalRuleCall_3_0_2_0 = (RuleCall)cBindAssignment_3_0_2.eContents().get(0);
		private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
		private final Keyword cUnbindKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1_1 = (Keyword)cGroup_3_1.eContents().get(1);
		private final Assignment cUnbindAssignment_3_1_2 = (Assignment)cGroup_3_1.eContents().get(2);
		private final RuleCall cUnbindIDTerminalRuleCall_3_1_2_0 = (RuleCall)cUnbindAssignment_3_1_2.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
		private final Keyword cClassKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_2_1 = (Keyword)cGroup_3_2.eContents().get(1);
		private final Assignment cTypeNameAssignment_3_2_2 = (Assignment)cGroup_3_2.eContents().get(2);
		private final RuleCall cTypeNameEStringParserRuleCall_3_2_2_0 = (RuleCall)cTypeNameAssignment_3_2_2.eContents().get(0);
		private final Group cGroup_3_3 = (Group)cUnorderedGroup_3.eContents().get(3);
		private final Keyword cCardinalityKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_3_1 = (Keyword)cGroup_3_3.eContents().get(1);
		private final Assignment cCardinalityAssignment_3_3_2 = (Assignment)cGroup_3_3.eContents().get(2);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_3_3_2_0 = (RuleCall)cCardinalityAssignment_3_3_2.eContents().get(0);
		private final Group cGroup_3_4 = (Group)cUnorderedGroup_3.eContents().get(4);
		private final Keyword cPolicyKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_4_1 = (Keyword)cGroup_3_4.eContents().get(1);
		private final Assignment cPolicyAssignment_3_4_2 = (Assignment)cGroup_3_4.eContents().get(2);
		private final RuleCall cPolicyPolicyEnumRuleCall_3_4_2_0 = (RuleCall)cPolicyAssignment_3_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//ComponentReference bundle::ComponentReference:
		//	{bundle::ComponentReference} name=ID '{' ('bind' '=' bind=ID
		//	&
		//	'unbind' '=' unbind=ID
		//	&
		//	'class' '=' typeName=EString
		//	&
		//	'cardinality' '=' cardinality=Cardinality
		//	&
		//	'policy' '=' policy=Policy)
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ComponentReference} name=ID '{' ('bind' '=' bind=ID & 'unbind' '=' unbind=ID & 'class' '=' typeName=EString &
		//'cardinality' '=' cardinality=Cardinality & 'policy' '=' policy=Policy) '}'
		public Group getGroup() { return cGroup; }

		//{bundle::ComponentReference}
		public Action getComponentReferenceAction_0() { return cComponentReferenceAction_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//'bind' '=' bind=ID & 'unbind' '=' unbind=ID & 'class' '=' typeName=EString & 'cardinality' '=' cardinality=Cardinality &
		//'policy' '=' policy=Policy
		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }

		//'bind' '=' bind=ID
		public Group getGroup_3_0() { return cGroup_3_0; }

		//'bind'
		public Keyword getBindKeyword_3_0_0() { return cBindKeyword_3_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_0_1() { return cEqualsSignKeyword_3_0_1; }

		//bind=ID
		public Assignment getBindAssignment_3_0_2() { return cBindAssignment_3_0_2; }

		//ID
		public RuleCall getBindIDTerminalRuleCall_3_0_2_0() { return cBindIDTerminalRuleCall_3_0_2_0; }

		//'unbind' '=' unbind=ID
		public Group getGroup_3_1() { return cGroup_3_1; }

		//'unbind'
		public Keyword getUnbindKeyword_3_1_0() { return cUnbindKeyword_3_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_1_1() { return cEqualsSignKeyword_3_1_1; }

		//unbind=ID
		public Assignment getUnbindAssignment_3_1_2() { return cUnbindAssignment_3_1_2; }

		//ID
		public RuleCall getUnbindIDTerminalRuleCall_3_1_2_0() { return cUnbindIDTerminalRuleCall_3_1_2_0; }

		//'class' '=' typeName=EString
		public Group getGroup_3_2() { return cGroup_3_2; }

		//'class'
		public Keyword getClassKeyword_3_2_0() { return cClassKeyword_3_2_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_2_1() { return cEqualsSignKeyword_3_2_1; }

		//typeName=EString
		public Assignment getTypeNameAssignment_3_2_2() { return cTypeNameAssignment_3_2_2; }

		//EString
		public RuleCall getTypeNameEStringParserRuleCall_3_2_2_0() { return cTypeNameEStringParserRuleCall_3_2_2_0; }

		//'cardinality' '=' cardinality=Cardinality
		public Group getGroup_3_3() { return cGroup_3_3; }

		//'cardinality'
		public Keyword getCardinalityKeyword_3_3_0() { return cCardinalityKeyword_3_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_3_1() { return cEqualsSignKeyword_3_3_1; }

		//cardinality=Cardinality
		public Assignment getCardinalityAssignment_3_3_2() { return cCardinalityAssignment_3_3_2; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_3_3_2_0() { return cCardinalityCardinalityEnumRuleCall_3_3_2_0; }

		//'policy' '=' policy=Policy
		public Group getGroup_3_4() { return cGroup_3_4; }

		//'policy'
		public Keyword getPolicyKeyword_3_4_0() { return cPolicyKeyword_3_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_4_1() { return cEqualsSignKeyword_3_4_1; }

		//policy=Policy
		public Assignment getPolicyAssignment_3_4_2() { return cPolicyAssignment_3_4_2; }

		//Policy
		public RuleCall getPolicyPolicyEnumRuleCall_3_4_2_0() { return cPolicyPolicyEnumRuleCall_3_4_2_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class BooleanExpressionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.BooleanExpression");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cReferencingBooleanExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cInlineBooleanExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//BooleanExpression task::BooleanExpression:
		//	ReferencingBooleanExpression | InlineBooleanExpression;
		@Override public ParserRule getRule() { return rule; }

		//ReferencingBooleanExpression | InlineBooleanExpression
		public Alternatives getAlternatives() { return cAlternatives; }

		//ReferencingBooleanExpression
		public RuleCall getReferencingBooleanExpressionParserRuleCall_0() { return cReferencingBooleanExpressionParserRuleCall_0; }

		//InlineBooleanExpression
		public RuleCall getInlineBooleanExpressionParserRuleCall_1() { return cInlineBooleanExpressionParserRuleCall_1; }
	}

	public class ReferencingBooleanExpressionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ReferencingBooleanExpression");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cExecutionURIAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cExecutionURISTRINGTerminalRuleCall_0_0 = (RuleCall)cExecutionURIAssignment_0.eContents().get(0);
		private final Keyword cByKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cTypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cTypeSTRINGTerminalRuleCall_2_0 = (RuleCall)cTypeAssignment_2.eContents().get(0);
		
		//ReferencingBooleanExpression task::ReferencingBooleanExpression:
		//	executionURI=STRING 'by' type=STRING;
		@Override public ParserRule getRule() { return rule; }

		//executionURI=STRING 'by' type=STRING
		public Group getGroup() { return cGroup; }

		//executionURI=STRING
		public Assignment getExecutionURIAssignment_0() { return cExecutionURIAssignment_0; }

		//STRING
		public RuleCall getExecutionURISTRINGTerminalRuleCall_0_0() { return cExecutionURISTRINGTerminalRuleCall_0_0; }

		//'by'
		public Keyword getByKeyword_1() { return cByKeyword_1; }

		//type=STRING
		public Assignment getTypeAssignment_2() { return cTypeAssignment_2; }

		//STRING
		public RuleCall getTypeSTRINGTerminalRuleCall_2_0() { return cTypeSTRINGTerminalRuleCall_2_0; }
	}

	public class InlineBooleanExpressionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.InlineBooleanExpression");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cTypeSTRINGTerminalRuleCall_0_0 = (RuleCall)cTypeAssignment_0.eContents().get(0);
		private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cExpressionINLINE_SCRIPTTerminalRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
		
		//InlineBooleanExpression task::InlineBooleanExpression:
		//	type=STRING expression=INLINE_SCRIPT;
		@Override public ParserRule getRule() { return rule; }

		//type=STRING expression=INLINE_SCRIPT
		public Group getGroup() { return cGroup; }

		//type=STRING
		public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }

		//STRING
		public RuleCall getTypeSTRINGTerminalRuleCall_0_0() { return cTypeSTRINGTerminalRuleCall_0_0; }

		//expression=INLINE_SCRIPT
		public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }

		//INLINE_SCRIPT
		public RuleCall getExpressionINLINE_SCRIPTTerminalRuleCall_1_0() { return cExpressionINLINE_SCRIPTTerminalRuleCall_1_0; }
	}

	public class EByteArrayElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.EByteArray");
		private final RuleCall cEStringParserRuleCall = (RuleCall)rule.eContents().get(1);
		
		//EByteArray ecore::EByteArray:
		//	EString /* TODO: implement this rule and an appropriate IValueConverter */;
		@Override public ParserRule getRule() { return rule; }

		//EString
		public RuleCall getEStringParserRuleCall() { return cEStringParserRuleCall; }
	}

	public class BundleProjectElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.BundleProject");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cBundleProjectAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cBundleProjectKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
		private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
		private final Keyword cManifestKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_0_1 = (Keyword)cGroup_4_0.eContents().get(1);
		private final Assignment cManifestAssignment_4_0_2 = (Assignment)cGroup_4_0.eContents().get(2);
		private final RuleCall cManifestManifestFileParserRuleCall_4_0_2_0 = (RuleCall)cManifestAssignment_4_0_2.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
		private final Keyword cBuildKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
		private final Assignment cBuildPropertiesAssignment_4_1_2 = (Assignment)cGroup_4_1.eContents().get(2);
		private final RuleCall cBuildPropertiesBuildPropertiesParserRuleCall_4_1_2_0 = (RuleCall)cBuildPropertiesAssignment_4_1_2.eContents().get(0);
		private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
		private final Keyword cPluginxmlKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_2_1 = (Keyword)cGroup_4_2.eContents().get(1);
		private final Assignment cPluginxmlAssignment_4_2_2 = (Assignment)cGroup_4_2.eContents().get(2);
		private final RuleCall cPluginxmlPluginXMLFileParserRuleCall_4_2_2_0 = (RuleCall)cPluginxmlAssignment_4_2_2.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cResourcesKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_5_2 = (Keyword)cGroup_5.eContents().get(2);
		private final Assignment cResourcesAssignment_5_3 = (Assignment)cGroup_5.eContents().get(3);
		private final RuleCall cResourcesResourceParserRuleCall_5_3_0 = (RuleCall)cResourcesAssignment_5_3.eContents().get(0);
		private final Group cGroup_5_4 = (Group)cGroup_5.eContents().get(4);
		private final Keyword cCommaKeyword_5_4_0 = (Keyword)cGroup_5_4.eContents().get(0);
		private final Assignment cResourcesAssignment_5_4_1 = (Assignment)cGroup_5_4.eContents().get(1);
		private final RuleCall cResourcesResourceParserRuleCall_5_4_1_0 = (RuleCall)cResourcesAssignment_5_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5_5 = (Keyword)cGroup_5.eContents().get(5);
		private final Keyword cRootfragmentsKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cEqualsSignKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cSourceFragmentsAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cSourceFragmentsSourceFragmentParserRuleCall_9_0 = (RuleCall)cSourceFragmentsAssignment_9.eContents().get(0);
		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
		private final Keyword cCommaKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
		private final Assignment cSourceFragmentsAssignment_10_1 = (Assignment)cGroup_10.eContents().get(1);
		private final RuleCall cSourceFragmentsSourceFragmentParserRuleCall_10_1_0 = (RuleCall)cSourceFragmentsAssignment_10_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
		private final Keyword cCompilationUnitsKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
		private final Keyword cEqualsSignKeyword_12_1 = (Keyword)cGroup_12.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_12_2 = (Keyword)cGroup_12.eContents().get(2);
		private final Assignment cCompilationUnitsAssignment_12_3 = (Assignment)cGroup_12.eContents().get(3);
		private final RuleCall cCompilationUnitsCompilationUnitParserRuleCall_12_3_0 = (RuleCall)cCompilationUnitsAssignment_12_3.eContents().get(0);
		private final Group cGroup_12_4 = (Group)cGroup_12.eContents().get(4);
		private final Keyword cCommaKeyword_12_4_0 = (Keyword)cGroup_12_4.eContents().get(0);
		private final Assignment cCompilationUnitsAssignment_12_4_1 = (Assignment)cGroup_12_4.eContents().get(1);
		private final RuleCall cCompilationUnitsCompilationUnitParserRuleCall_12_4_1_0 = (RuleCall)cCompilationUnitsAssignment_12_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_12_5 = (Keyword)cGroup_12.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_13 = (Keyword)cGroup.eContents().get(13);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cExcludedIfKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_14_1 = (Assignment)cGroup_14.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_14_1_0 = (RuleCall)cExcludeExpressionAssignment_14_1.eContents().get(0);
		
		//BundleProject bundle::BundleProject:
		//	{bundle::BundleProject}
		//	'BundleProject'
		//	name=EString '{' ('manifest' '=' manifest=ManifestFile
		//	&
		//	'build' '=' buildProperties=BuildProperties
		//	& ('pluginxml' '=' pluginxml=PluginXMLFile)?) ('resources' '=' '{' resources+=Resource ("," resources+=Resource)*
		//	'}')?
		//	'rootfragments' '=' '{' sourceFragments+=SourceFragment ("," sourceFragments+=SourceFragment)* '}'
		//	('compilation-units' '=' '{' compilationUnits+=CompilationUnit (',' compilationUnits+=CompilationUnit)* '}')?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::BundleProject} 'BundleProject' name=EString '{' ('manifest' '=' manifest=ManifestFile & 'build' '='
		//buildProperties=BuildProperties & ('pluginxml' '=' pluginxml=PluginXMLFile)?) ('resources' '=' '{' resources+=Resource
		//("," resources+=Resource)* '}')? 'rootfragments' '=' '{' sourceFragments+=SourceFragment (","
		//sourceFragments+=SourceFragment)* '}' ('compilation-units' '=' '{' compilationUnits+=CompilationUnit (','
		//compilationUnits+=CompilationUnit)* '}')? '}' ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::BundleProject}
		public Action getBundleProjectAction_0() { return cBundleProjectAction_0; }

		//'BundleProject'
		public Keyword getBundleProjectKeyword_1() { return cBundleProjectKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//'manifest' '=' manifest=ManifestFile & 'build' '=' buildProperties=BuildProperties & ('pluginxml' '='
		//pluginxml=PluginXMLFile)?
		public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }

		//'manifest' '=' manifest=ManifestFile
		public Group getGroup_4_0() { return cGroup_4_0; }

		//'manifest'
		public Keyword getManifestKeyword_4_0_0() { return cManifestKeyword_4_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_0_1() { return cEqualsSignKeyword_4_0_1; }

		//manifest=ManifestFile
		public Assignment getManifestAssignment_4_0_2() { return cManifestAssignment_4_0_2; }

		//ManifestFile
		public RuleCall getManifestManifestFileParserRuleCall_4_0_2_0() { return cManifestManifestFileParserRuleCall_4_0_2_0; }

		//'build' '=' buildProperties=BuildProperties
		public Group getGroup_4_1() { return cGroup_4_1; }

		//'build'
		public Keyword getBuildKeyword_4_1_0() { return cBuildKeyword_4_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1_1() { return cEqualsSignKeyword_4_1_1; }

		//buildProperties=BuildProperties
		public Assignment getBuildPropertiesAssignment_4_1_2() { return cBuildPropertiesAssignment_4_1_2; }

		//BuildProperties
		public RuleCall getBuildPropertiesBuildPropertiesParserRuleCall_4_1_2_0() { return cBuildPropertiesBuildPropertiesParserRuleCall_4_1_2_0; }

		//('pluginxml' '=' pluginxml=PluginXMLFile)?
		public Group getGroup_4_2() { return cGroup_4_2; }

		//'pluginxml'
		public Keyword getPluginxmlKeyword_4_2_0() { return cPluginxmlKeyword_4_2_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_2_1() { return cEqualsSignKeyword_4_2_1; }

		//pluginxml=PluginXMLFile
		public Assignment getPluginxmlAssignment_4_2_2() { return cPluginxmlAssignment_4_2_2; }

		//PluginXMLFile
		public RuleCall getPluginxmlPluginXMLFileParserRuleCall_4_2_2_0() { return cPluginxmlPluginXMLFileParserRuleCall_4_2_2_0; }

		//('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
		public Group getGroup_5() { return cGroup_5; }

		//'resources'
		public Keyword getResourcesKeyword_5_0() { return cResourcesKeyword_5_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_1() { return cEqualsSignKeyword_5_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_5_2() { return cLeftCurlyBracketKeyword_5_2; }

		//resources+=Resource
		public Assignment getResourcesAssignment_5_3() { return cResourcesAssignment_5_3; }

		//Resource
		public RuleCall getResourcesResourceParserRuleCall_5_3_0() { return cResourcesResourceParserRuleCall_5_3_0; }

		//("," resources+=Resource)*
		public Group getGroup_5_4() { return cGroup_5_4; }

		//","
		public Keyword getCommaKeyword_5_4_0() { return cCommaKeyword_5_4_0; }

		//resources+=Resource
		public Assignment getResourcesAssignment_5_4_1() { return cResourcesAssignment_5_4_1; }

		//Resource
		public RuleCall getResourcesResourceParserRuleCall_5_4_1_0() { return cResourcesResourceParserRuleCall_5_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5_5() { return cRightCurlyBracketKeyword_5_5; }

		//'rootfragments'
		public Keyword getRootfragmentsKeyword_6() { return cRootfragmentsKeyword_6; }

		//'='
		public Keyword getEqualsSignKeyword_7() { return cEqualsSignKeyword_7; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; }

		//sourceFragments+=SourceFragment
		public Assignment getSourceFragmentsAssignment_9() { return cSourceFragmentsAssignment_9; }

		//SourceFragment
		public RuleCall getSourceFragmentsSourceFragmentParserRuleCall_9_0() { return cSourceFragmentsSourceFragmentParserRuleCall_9_0; }

		//("," sourceFragments+=SourceFragment)*
		public Group getGroup_10() { return cGroup_10; }

		//","
		public Keyword getCommaKeyword_10_0() { return cCommaKeyword_10_0; }

		//sourceFragments+=SourceFragment
		public Assignment getSourceFragmentsAssignment_10_1() { return cSourceFragmentsAssignment_10_1; }

		//SourceFragment
		public RuleCall getSourceFragmentsSourceFragmentParserRuleCall_10_1_0() { return cSourceFragmentsSourceFragmentParserRuleCall_10_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; }

		//('compilation-units' '=' '{' compilationUnits+=CompilationUnit (',' compilationUnits+=CompilationUnit)* '}')?
		public Group getGroup_12() { return cGroup_12; }

		//'compilation-units'
		public Keyword getCompilationUnitsKeyword_12_0() { return cCompilationUnitsKeyword_12_0; }

		//'='
		public Keyword getEqualsSignKeyword_12_1() { return cEqualsSignKeyword_12_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_12_2() { return cLeftCurlyBracketKeyword_12_2; }

		//compilationUnits+=CompilationUnit
		public Assignment getCompilationUnitsAssignment_12_3() { return cCompilationUnitsAssignment_12_3; }

		//CompilationUnit
		public RuleCall getCompilationUnitsCompilationUnitParserRuleCall_12_3_0() { return cCompilationUnitsCompilationUnitParserRuleCall_12_3_0; }

		//(',' compilationUnits+=CompilationUnit)*
		public Group getGroup_12_4() { return cGroup_12_4; }

		//','
		public Keyword getCommaKeyword_12_4_0() { return cCommaKeyword_12_4_0; }

		//compilationUnits+=CompilationUnit
		public Assignment getCompilationUnitsAssignment_12_4_1() { return cCompilationUnitsAssignment_12_4_1; }

		//CompilationUnit
		public RuleCall getCompilationUnitsCompilationUnitParserRuleCall_12_4_1_0() { return cCompilationUnitsCompilationUnitParserRuleCall_12_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_12_5() { return cRightCurlyBracketKeyword_12_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_13() { return cRightCurlyBracketKeyword_13; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_14() { return cGroup_14; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_14_0() { return cExcludedIfKeyword_14_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_14_1() { return cExcludeExpressionAssignment_14_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_14_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_14_1_0; }
	}

	public class SourceFragmentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.SourceFragment");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cFragmentKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Assignment cFolderAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final CrossReference cFolderFolderCrossReference_2_0 = (CrossReference)cFolderAssignment_2.eContents().get(0);
		private final RuleCall cFolderFolderSTRINGTerminalRuleCall_2_0_1 = (RuleCall)cFolderFolderCrossReference_2_0.eContents().get(1);
		
		//SourceFragment task::SourceFragment:
		//	'fragment' name=EString folder=[task::Folder|STRING];
		@Override public ParserRule getRule() { return rule; }

		//'fragment' name=EString folder=[task::Folder|STRING]
		public Group getGroup() { return cGroup; }

		//'fragment'
		public Keyword getFragmentKeyword_0() { return cFragmentKeyword_0; }

		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }

		//folder=[task::Folder|STRING]
		public Assignment getFolderAssignment_2() { return cFolderAssignment_2; }

		//[task::Folder|STRING]
		public CrossReference getFolderFolderCrossReference_2_0() { return cFolderFolderCrossReference_2_0; }

		//STRING
		public RuleCall getFolderFolderSTRINGTerminalRuleCall_2_0_1() { return cFolderFolderSTRINGTerminalRuleCall_2_0_1; }
	}

	public class CompilationUnitElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.CompilationUnit");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cPackagenameAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cPackagenameSTRINGTerminalRuleCall_0_0 = (RuleCall)cPackagenameAssignment_0.eContents().get(0);
		private final Keyword cInKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cSourcefragmentAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final CrossReference cSourcefragmentSourceFragmentCrossReference_2_0 = (CrossReference)cSourcefragmentAssignment_2.eContents().get(0);
		private final RuleCall cSourcefragmentSourceFragmentSTRINGTerminalRuleCall_2_0_1 = (RuleCall)cSourcefragmentSourceFragmentCrossReference_2_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cFileAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Alternatives cFileAlternatives_4_0 = (Alternatives)cFileAssignment_4.eContents().get(0);
		private final RuleCall cFileTemplatedFileParserRuleCall_4_0_0 = (RuleCall)cFileAlternatives_4_0.eContents().get(0);
		private final RuleCall cFileDataFileParserRuleCall_4_0_1 = (RuleCall)cFileAlternatives_4_0.eContents().get(1);
		private final RuleCall cFileURLFileParserRuleCall_4_0_2 = (RuleCall)cFileAlternatives_4_0.eContents().get(2);
		private final RuleCall cFileDynamicFileParserRuleCall_4_0_3 = (RuleCall)cFileAlternatives_4_0.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cExcludedIfKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0 = (RuleCall)cExcludeExpressionAssignment_6_1.eContents().get(0);
		
		//CompilationUnit task::CompilationUnit:
		//	packagename=STRING 'in' sourcefragment=[task::SourceFragment|STRING] '{' file=(TemplatedFile | DataFile | URLFile |
		//	DynamicFile) '}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//packagename=STRING 'in' sourcefragment=[task::SourceFragment|STRING] '{' file=(TemplatedFile | DataFile | URLFile |
		//DynamicFile) '}' ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//packagename=STRING
		public Assignment getPackagenameAssignment_0() { return cPackagenameAssignment_0; }

		//STRING
		public RuleCall getPackagenameSTRINGTerminalRuleCall_0_0() { return cPackagenameSTRINGTerminalRuleCall_0_0; }

		//'in'
		public Keyword getInKeyword_1() { return cInKeyword_1; }

		//sourcefragment=[task::SourceFragment|STRING]
		public Assignment getSourcefragmentAssignment_2() { return cSourcefragmentAssignment_2; }

		//[task::SourceFragment|STRING]
		public CrossReference getSourcefragmentSourceFragmentCrossReference_2_0() { return cSourcefragmentSourceFragmentCrossReference_2_0; }

		//STRING
		public RuleCall getSourcefragmentSourceFragmentSTRINGTerminalRuleCall_2_0_1() { return cSourcefragmentSourceFragmentSTRINGTerminalRuleCall_2_0_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//file=(TemplatedFile | DataFile | URLFile | DynamicFile)
		public Assignment getFileAssignment_4() { return cFileAssignment_4; }

		//(TemplatedFile | DataFile | URLFile | DynamicFile)
		public Alternatives getFileAlternatives_4_0() { return cFileAlternatives_4_0; }

		//TemplatedFile
		public RuleCall getFileTemplatedFileParserRuleCall_4_0_0() { return cFileTemplatedFileParserRuleCall_4_0_0; }

		//DataFile
		public RuleCall getFileDataFileParserRuleCall_4_0_1() { return cFileDataFileParserRuleCall_4_0_1; }

		//URLFile
		public RuleCall getFileURLFileParserRuleCall_4_0_2() { return cFileURLFileParserRuleCall_4_0_2; }

		//DynamicFile
		public RuleCall getFileDynamicFileParserRuleCall_4_0_3() { return cFileDynamicFileParserRuleCall_4_0_3; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_6() { return cGroup_6; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_6_0() { return cExcludedIfKeyword_6_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_6_1() { return cExcludeExpressionAssignment_6_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_6_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0; }
	}

	public class FeatureProjectElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.FeatureProject");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cFeatureProjectAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cFeatureProjectKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cFeatureKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cEqualsSignKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cFeatureAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cFeatureFeatureFileParserRuleCall_6_0 = (RuleCall)cFeatureAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cResourcesKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cEqualsSignKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		private final Assignment cResourcesAssignment_7_3 = (Assignment)cGroup_7.eContents().get(3);
		private final RuleCall cResourcesResourceParserRuleCall_7_3_0 = (RuleCall)cResourcesAssignment_7_3.eContents().get(0);
		private final Group cGroup_7_4 = (Group)cGroup_7.eContents().get(4);
		private final Keyword cCommaKeyword_7_4_0 = (Keyword)cGroup_7_4.eContents().get(0);
		private final Assignment cResourcesAssignment_7_4_1 = (Assignment)cGroup_7_4.eContents().get(1);
		private final RuleCall cResourcesResourceParserRuleCall_7_4_1_0 = (RuleCall)cResourcesAssignment_7_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7_5 = (Keyword)cGroup_7.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cExcludedIfKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_9_1_0 = (RuleCall)cExcludeExpressionAssignment_9_1.eContents().get(0);
		
		//FeatureProject bundle::FeatureProject:
		//	{bundle::FeatureProject}
		//	'FeatureProject'
		//	name=EString '{'
		//	'feature' '=' feature=FeatureFile ('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::FeatureProject} 'FeatureProject' name=EString '{' 'feature' '=' feature=FeatureFile ('resources' '=' '{'
		//resources+=Resource ("," resources+=Resource)* '}')? '}' ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::FeatureProject}
		public Action getFeatureProjectAction_0() { return cFeatureProjectAction_0; }

		//'FeatureProject'
		public Keyword getFeatureProjectKeyword_1() { return cFeatureProjectKeyword_1; }

		//name=EString
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//EString
		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//'feature'
		public Keyword getFeatureKeyword_4() { return cFeatureKeyword_4; }

		//'='
		public Keyword getEqualsSignKeyword_5() { return cEqualsSignKeyword_5; }

		//feature=FeatureFile
		public Assignment getFeatureAssignment_6() { return cFeatureAssignment_6; }

		//FeatureFile
		public RuleCall getFeatureFeatureFileParserRuleCall_6_0() { return cFeatureFeatureFileParserRuleCall_6_0; }

		//('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
		public Group getGroup_7() { return cGroup_7; }

		//'resources'
		public Keyword getResourcesKeyword_7_0() { return cResourcesKeyword_7_0; }

		//'='
		public Keyword getEqualsSignKeyword_7_1() { return cEqualsSignKeyword_7_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_7_2() { return cLeftCurlyBracketKeyword_7_2; }

		//resources+=Resource
		public Assignment getResourcesAssignment_7_3() { return cResourcesAssignment_7_3; }

		//Resource
		public RuleCall getResourcesResourceParserRuleCall_7_3_0() { return cResourcesResourceParserRuleCall_7_3_0; }

		//("," resources+=Resource)*
		public Group getGroup_7_4() { return cGroup_7_4; }

		//","
		public Keyword getCommaKeyword_7_4_0() { return cCommaKeyword_7_4_0; }

		//resources+=Resource
		public Assignment getResourcesAssignment_7_4_1() { return cResourcesAssignment_7_4_1; }

		//Resource
		public RuleCall getResourcesResourceParserRuleCall_7_4_1_0() { return cResourcesResourceParserRuleCall_7_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_7_5() { return cRightCurlyBracketKeyword_7_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_9() { return cGroup_9; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_9_0() { return cExcludedIfKeyword_9_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_9_1() { return cExcludeExpressionAssignment_9_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_9_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_9_1_0; }
	}

	public class ManifestFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ManifestFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cManifestFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cLazyAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cLazyLazyKeyword_1_0 = (Keyword)cLazyAssignment_1.eContents().get(0);
		private final Assignment cSingletonAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cSingletonSingletonKeyword_2_0 = (Keyword)cSingletonAssignment_2.eContents().get(0);
		private final Keyword cManifestFileKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cSymbolicnameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cSymbolicnameSTRINGTerminalRuleCall_4_0 = (RuleCall)cSymbolicnameAssignment_4.eContents().get(0);
		private final Assignment cVersionAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cVersionSTRINGTerminalRuleCall_5_0 = (RuleCall)cVersionAssignment_5.eContents().get(0);
		private final Assignment cExecutionEnvironmentAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cExecutionEnvironmentSTRINGTerminalRuleCall_6_0 = (RuleCall)cExecutionEnvironmentAssignment_6.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final UnorderedGroup cUnorderedGroup_8 = (UnorderedGroup)cGroup.eContents().get(8);
		private final Group cGroup_8_0 = (Group)cUnorderedGroup_8.eContents().get(0);
		private final Keyword cBundlenameKeyword_8_0_0 = (Keyword)cGroup_8_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_8_0_1 = (Keyword)cGroup_8_0.eContents().get(1);
		private final Assignment cBundlenameAssignment_8_0_2 = (Assignment)cGroup_8_0.eContents().get(2);
		private final RuleCall cBundlenameSTRINGTerminalRuleCall_8_0_2_0 = (RuleCall)cBundlenameAssignment_8_0_2.eContents().get(0);
		private final Group cGroup_8_1 = (Group)cUnorderedGroup_8.eContents().get(1);
		private final Keyword cVendorKeyword_8_1_0 = (Keyword)cGroup_8_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_8_1_1 = (Keyword)cGroup_8_1.eContents().get(1);
		private final Assignment cVendorAssignment_8_1_2 = (Assignment)cGroup_8_1.eContents().get(2);
		private final RuleCall cVendorSTRINGTerminalRuleCall_8_1_2_0 = (RuleCall)cVendorAssignment_8_1_2.eContents().get(0);
		private final Group cGroup_8_2 = (Group)cUnorderedGroup_8.eContents().get(2);
		private final Keyword cActivatorClassKeyword_8_2_0 = (Keyword)cGroup_8_2.eContents().get(0);
		private final Keyword cEqualsSignKeyword_8_2_1 = (Keyword)cGroup_8_2.eContents().get(1);
		private final Assignment cActivatorClassAssignment_8_2_2 = (Assignment)cGroup_8_2.eContents().get(2);
		private final RuleCall cActivatorClassSTRINGTerminalRuleCall_8_2_2_0 = (RuleCall)cActivatorClassAssignment_8_2_2.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cExportedPackagesKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Keyword cEqualsSignKeyword_9_1 = (Keyword)cGroup_9.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_9_2 = (Keyword)cGroup_9.eContents().get(2);
		private final Assignment cExportedPackagesAssignment_9_3 = (Assignment)cGroup_9.eContents().get(3);
		private final RuleCall cExportedPackagesExportedPackageParserRuleCall_9_3_0 = (RuleCall)cExportedPackagesAssignment_9_3.eContents().get(0);
		private final Group cGroup_9_4 = (Group)cGroup_9.eContents().get(4);
		private final Keyword cCommaKeyword_9_4_0 = (Keyword)cGroup_9_4.eContents().get(0);
		private final Assignment cExportedPackagesAssignment_9_4_1 = (Assignment)cGroup_9_4.eContents().get(1);
		private final RuleCall cExportedPackagesExportedPackageParserRuleCall_9_4_1_0 = (RuleCall)cExportedPackagesAssignment_9_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_9_5 = (Keyword)cGroup_9.eContents().get(5);
		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
		private final Keyword cImportedPackagesKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
		private final Keyword cEqualsSignKeyword_10_1 = (Keyword)cGroup_10.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_10_2 = (Keyword)cGroup_10.eContents().get(2);
		private final Assignment cImportedPackagesAssignment_10_3 = (Assignment)cGroup_10.eContents().get(3);
		private final RuleCall cImportedPackagesImportedPackageParserRuleCall_10_3_0 = (RuleCall)cImportedPackagesAssignment_10_3.eContents().get(0);
		private final Group cGroup_10_4 = (Group)cGroup_10.eContents().get(4);
		private final Keyword cCommaKeyword_10_4_0 = (Keyword)cGroup_10_4.eContents().get(0);
		private final Assignment cImportedPackagesAssignment_10_4_1 = (Assignment)cGroup_10_4.eContents().get(1);
		private final RuleCall cImportedPackagesImportedPackageParserRuleCall_10_4_1_0 = (RuleCall)cImportedPackagesAssignment_10_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_10_5 = (Keyword)cGroup_10.eContents().get(5);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cRequiredBundlesKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Keyword cEqualsSignKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_11_2 = (Keyword)cGroup_11.eContents().get(2);
		private final Assignment cRequiredBundlesAssignment_11_3 = (Assignment)cGroup_11.eContents().get(3);
		private final RuleCall cRequiredBundlesRequiredBundleParserRuleCall_11_3_0 = (RuleCall)cRequiredBundlesAssignment_11_3.eContents().get(0);
		private final Group cGroup_11_4 = (Group)cGroup_11.eContents().get(4);
		private final Keyword cCommaKeyword_11_4_0 = (Keyword)cGroup_11_4.eContents().get(0);
		private final Assignment cRequiredBundlesAssignment_11_4_1 = (Assignment)cGroup_11_4.eContents().get(1);
		private final RuleCall cRequiredBundlesRequiredBundleParserRuleCall_11_4_1_0 = (RuleCall)cRequiredBundlesAssignment_11_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_11_5 = (Keyword)cGroup_11.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
		
		//ManifestFile bundle::ManifestFile:
		//	{bundle::ManifestFile} lazy?='lazy'? singleton?='singleton'? 'ManifestFile' symbolicname=STRING version=STRING
		//	executionEnvironment=STRING '{' ('bundlename' '=' bundlename=STRING
		//	&
		//	'vendor' '=' vendor=STRING
		//	& ('activatorClass' '=' activatorClass=STRING)?) ('exportedPackages' '=' '{' exportedPackages+=ExportedPackage (','
		//	exportedPackages+=ExportedPackage)* '}')? ('importedPackages' '=' '{' importedPackages+=ImportedPackage (','
		//	importedPackages+=ImportedPackage)* '}')? ('requiredBundles' '=' '{' requiredBundles+=RequiredBundle (','
		//	requiredBundles+=RequiredBundle)* '}')?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ManifestFile} lazy?='lazy'? singleton?='singleton'? 'ManifestFile' symbolicname=STRING version=STRING
		//executionEnvironment=STRING '{' ('bundlename' '=' bundlename=STRING & 'vendor' '=' vendor=STRING & ('activatorClass'
		//'=' activatorClass=STRING)?) ('exportedPackages' '=' '{' exportedPackages+=ExportedPackage (','
		//exportedPackages+=ExportedPackage)* '}')? ('importedPackages' '=' '{' importedPackages+=ImportedPackage (','
		//importedPackages+=ImportedPackage)* '}')? ('requiredBundles' '=' '{' requiredBundles+=RequiredBundle (','
		//requiredBundles+=RequiredBundle)* '}')? '}'
		public Group getGroup() { return cGroup; }

		//{bundle::ManifestFile}
		public Action getManifestFileAction_0() { return cManifestFileAction_0; }

		//lazy?='lazy'?
		public Assignment getLazyAssignment_1() { return cLazyAssignment_1; }

		//'lazy'
		public Keyword getLazyLazyKeyword_1_0() { return cLazyLazyKeyword_1_0; }

		//singleton?='singleton'?
		public Assignment getSingletonAssignment_2() { return cSingletonAssignment_2; }

		//'singleton'
		public Keyword getSingletonSingletonKeyword_2_0() { return cSingletonSingletonKeyword_2_0; }

		//'ManifestFile'
		public Keyword getManifestFileKeyword_3() { return cManifestFileKeyword_3; }

		//symbolicname=STRING
		public Assignment getSymbolicnameAssignment_4() { return cSymbolicnameAssignment_4; }

		//STRING
		public RuleCall getSymbolicnameSTRINGTerminalRuleCall_4_0() { return cSymbolicnameSTRINGTerminalRuleCall_4_0; }

		//version=STRING
		public Assignment getVersionAssignment_5() { return cVersionAssignment_5; }

		//STRING
		public RuleCall getVersionSTRINGTerminalRuleCall_5_0() { return cVersionSTRINGTerminalRuleCall_5_0; }

		//executionEnvironment=STRING
		public Assignment getExecutionEnvironmentAssignment_6() { return cExecutionEnvironmentAssignment_6; }

		//STRING
		public RuleCall getExecutionEnvironmentSTRINGTerminalRuleCall_6_0() { return cExecutionEnvironmentSTRINGTerminalRuleCall_6_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_7() { return cLeftCurlyBracketKeyword_7; }

		//'bundlename' '=' bundlename=STRING & 'vendor' '=' vendor=STRING & ('activatorClass' '=' activatorClass=STRING)?
		public UnorderedGroup getUnorderedGroup_8() { return cUnorderedGroup_8; }

		//'bundlename' '=' bundlename=STRING
		public Group getGroup_8_0() { return cGroup_8_0; }

		//'bundlename'
		public Keyword getBundlenameKeyword_8_0_0() { return cBundlenameKeyword_8_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_8_0_1() { return cEqualsSignKeyword_8_0_1; }

		//bundlename=STRING
		public Assignment getBundlenameAssignment_8_0_2() { return cBundlenameAssignment_8_0_2; }

		//STRING
		public RuleCall getBundlenameSTRINGTerminalRuleCall_8_0_2_0() { return cBundlenameSTRINGTerminalRuleCall_8_0_2_0; }

		//'vendor' '=' vendor=STRING
		public Group getGroup_8_1() { return cGroup_8_1; }

		//'vendor'
		public Keyword getVendorKeyword_8_1_0() { return cVendorKeyword_8_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_8_1_1() { return cEqualsSignKeyword_8_1_1; }

		//vendor=STRING
		public Assignment getVendorAssignment_8_1_2() { return cVendorAssignment_8_1_2; }

		//STRING
		public RuleCall getVendorSTRINGTerminalRuleCall_8_1_2_0() { return cVendorSTRINGTerminalRuleCall_8_1_2_0; }

		//('activatorClass' '=' activatorClass=STRING)?
		public Group getGroup_8_2() { return cGroup_8_2; }

		//'activatorClass'
		public Keyword getActivatorClassKeyword_8_2_0() { return cActivatorClassKeyword_8_2_0; }

		//'='
		public Keyword getEqualsSignKeyword_8_2_1() { return cEqualsSignKeyword_8_2_1; }

		//activatorClass=STRING
		public Assignment getActivatorClassAssignment_8_2_2() { return cActivatorClassAssignment_8_2_2; }

		//STRING
		public RuleCall getActivatorClassSTRINGTerminalRuleCall_8_2_2_0() { return cActivatorClassSTRINGTerminalRuleCall_8_2_2_0; }

		//('exportedPackages' '=' '{' exportedPackages+=ExportedPackage (',' exportedPackages+=ExportedPackage)* '}')?
		public Group getGroup_9() { return cGroup_9; }

		//'exportedPackages'
		public Keyword getExportedPackagesKeyword_9_0() { return cExportedPackagesKeyword_9_0; }

		//'='
		public Keyword getEqualsSignKeyword_9_1() { return cEqualsSignKeyword_9_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_9_2() { return cLeftCurlyBracketKeyword_9_2; }

		//exportedPackages+=ExportedPackage
		public Assignment getExportedPackagesAssignment_9_3() { return cExportedPackagesAssignment_9_3; }

		//ExportedPackage
		public RuleCall getExportedPackagesExportedPackageParserRuleCall_9_3_0() { return cExportedPackagesExportedPackageParserRuleCall_9_3_0; }

		//(',' exportedPackages+=ExportedPackage)*
		public Group getGroup_9_4() { return cGroup_9_4; }

		//','
		public Keyword getCommaKeyword_9_4_0() { return cCommaKeyword_9_4_0; }

		//exportedPackages+=ExportedPackage
		public Assignment getExportedPackagesAssignment_9_4_1() { return cExportedPackagesAssignment_9_4_1; }

		//ExportedPackage
		public RuleCall getExportedPackagesExportedPackageParserRuleCall_9_4_1_0() { return cExportedPackagesExportedPackageParserRuleCall_9_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_9_5() { return cRightCurlyBracketKeyword_9_5; }

		//('importedPackages' '=' '{' importedPackages+=ImportedPackage (',' importedPackages+=ImportedPackage)* '}')?
		public Group getGroup_10() { return cGroup_10; }

		//'importedPackages'
		public Keyword getImportedPackagesKeyword_10_0() { return cImportedPackagesKeyword_10_0; }

		//'='
		public Keyword getEqualsSignKeyword_10_1() { return cEqualsSignKeyword_10_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_10_2() { return cLeftCurlyBracketKeyword_10_2; }

		//importedPackages+=ImportedPackage
		public Assignment getImportedPackagesAssignment_10_3() { return cImportedPackagesAssignment_10_3; }

		//ImportedPackage
		public RuleCall getImportedPackagesImportedPackageParserRuleCall_10_3_0() { return cImportedPackagesImportedPackageParserRuleCall_10_3_0; }

		//(',' importedPackages+=ImportedPackage)*
		public Group getGroup_10_4() { return cGroup_10_4; }

		//','
		public Keyword getCommaKeyword_10_4_0() { return cCommaKeyword_10_4_0; }

		//importedPackages+=ImportedPackage
		public Assignment getImportedPackagesAssignment_10_4_1() { return cImportedPackagesAssignment_10_4_1; }

		//ImportedPackage
		public RuleCall getImportedPackagesImportedPackageParserRuleCall_10_4_1_0() { return cImportedPackagesImportedPackageParserRuleCall_10_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_10_5() { return cRightCurlyBracketKeyword_10_5; }

		//('requiredBundles' '=' '{' requiredBundles+=RequiredBundle (',' requiredBundles+=RequiredBundle)* '}')?
		public Group getGroup_11() { return cGroup_11; }

		//'requiredBundles'
		public Keyword getRequiredBundlesKeyword_11_0() { return cRequiredBundlesKeyword_11_0; }

		//'='
		public Keyword getEqualsSignKeyword_11_1() { return cEqualsSignKeyword_11_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_11_2() { return cLeftCurlyBracketKeyword_11_2; }

		//requiredBundles+=RequiredBundle
		public Assignment getRequiredBundlesAssignment_11_3() { return cRequiredBundlesAssignment_11_3; }

		//RequiredBundle
		public RuleCall getRequiredBundlesRequiredBundleParserRuleCall_11_3_0() { return cRequiredBundlesRequiredBundleParserRuleCall_11_3_0; }

		//(',' requiredBundles+=RequiredBundle)*
		public Group getGroup_11_4() { return cGroup_11_4; }

		//','
		public Keyword getCommaKeyword_11_4_0() { return cCommaKeyword_11_4_0; }

		//requiredBundles+=RequiredBundle
		public Assignment getRequiredBundlesAssignment_11_4_1() { return cRequiredBundlesAssignment_11_4_1; }

		//RequiredBundle
		public RuleCall getRequiredBundlesRequiredBundleParserRuleCall_11_4_1_0() { return cRequiredBundlesRequiredBundleParserRuleCall_11_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_11_5() { return cRightCurlyBracketKeyword_11_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; }
	}

	public class PluginXMLFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.PluginXMLFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cPluginXMLFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cPluginXMLFileKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExtensionsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
		private final Assignment cExtensionsAssignment_3_3 = (Assignment)cGroup_3.eContents().get(3);
		private final RuleCall cExtensionsExtensionParserRuleCall_3_3_0 = (RuleCall)cExtensionsAssignment_3_3.eContents().get(0);
		private final Group cGroup_3_4 = (Group)cGroup_3.eContents().get(4);
		private final Keyword cCommaKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
		private final Assignment cExtensionsAssignment_3_4_1 = (Assignment)cGroup_3_4.eContents().get(1);
		private final RuleCall cExtensionsExtensionParserRuleCall_3_4_1_0 = (RuleCall)cExtensionsAssignment_3_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3_5 = (Keyword)cGroup_3.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//PluginXMLFile bundle::PluginXMLFile:
		//	{bundle::PluginXMLFile}
		//	'PluginXMLFile' '{' ('extensions' '=' '{' extensions+=Extension (',' extensions+=Extension)* '}')?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::PluginXMLFile} 'PluginXMLFile' '{' ('extensions' '=' '{' extensions+=Extension (',' extensions+=Extension)*
		//'}')? '}'
		public Group getGroup() { return cGroup; }

		//{bundle::PluginXMLFile}
		public Action getPluginXMLFileAction_0() { return cPluginXMLFileAction_0; }

		//'PluginXMLFile'
		public Keyword getPluginXMLFileKeyword_1() { return cPluginXMLFileKeyword_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//('extensions' '=' '{' extensions+=Extension (',' extensions+=Extension)* '}')?
		public Group getGroup_3() { return cGroup_3; }

		//'extensions'
		public Keyword getExtensionsKeyword_3_0() { return cExtensionsKeyword_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_2() { return cLeftCurlyBracketKeyword_3_2; }

		//extensions+=Extension
		public Assignment getExtensionsAssignment_3_3() { return cExtensionsAssignment_3_3; }

		//Extension
		public RuleCall getExtensionsExtensionParserRuleCall_3_3_0() { return cExtensionsExtensionParserRuleCall_3_3_0; }

		//(',' extensions+=Extension)*
		public Group getGroup_3_4() { return cGroup_3_4; }

		//','
		public Keyword getCommaKeyword_3_4_0() { return cCommaKeyword_3_4_0; }

		//extensions+=Extension
		public Assignment getExtensionsAssignment_3_4_1() { return cExtensionsAssignment_3_4_1; }

		//Extension
		public RuleCall getExtensionsExtensionParserRuleCall_3_4_1_0() { return cExtensionsExtensionParserRuleCall_3_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_5() { return cRightCurlyBracketKeyword_3_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class BuildPropertiesElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.BuildProperties");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cBuildPropertiesAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cBuildPropertiesKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cBinIncludesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
		private final Assignment cBinIncludesAssignment_3_3 = (Assignment)cGroup_3.eContents().get(3);
		private final CrossReference cBinIncludesResourceCrossReference_3_3_0 = (CrossReference)cBinIncludesAssignment_3_3.eContents().get(0);
		private final RuleCall cBinIncludesResourceSTRINGTerminalRuleCall_3_3_0_1 = (RuleCall)cBinIncludesResourceCrossReference_3_3_0.eContents().get(1);
		private final Group cGroup_3_4 = (Group)cGroup_3.eContents().get(4);
		private final Keyword cCommaKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
		private final Assignment cBinIncludesAssignment_3_4_1 = (Assignment)cGroup_3_4.eContents().get(1);
		private final CrossReference cBinIncludesResourceCrossReference_3_4_1_0 = (CrossReference)cBinIncludesAssignment_3_4_1.eContents().get(0);
		private final RuleCall cBinIncludesResourceSTRINGTerminalRuleCall_3_4_1_0_1 = (RuleCall)cBinIncludesResourceCrossReference_3_4_1_0.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_3_5 = (Keyword)cGroup_3.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//BuildProperties bundle::BuildProperties:
		//	{bundle::BuildProperties}
		//	'BuildProperties' '{' ('binIncludes' '=' '{' binIncludes+=[task::Resource|STRING] (','
		//	binIncludes+=[task::Resource|STRING])* '}')?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::BuildProperties} 'BuildProperties' '{' ('binIncludes' '=' '{' binIncludes+=[task::Resource|STRING] (','
		//binIncludes+=[task::Resource|STRING])* '}')? '}'
		public Group getGroup() { return cGroup; }

		//{bundle::BuildProperties}
		public Action getBuildPropertiesAction_0() { return cBuildPropertiesAction_0; }

		//'BuildProperties'
		public Keyword getBuildPropertiesKeyword_1() { return cBuildPropertiesKeyword_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//('binIncludes' '=' '{' binIncludes+=[task::Resource|STRING] (',' binIncludes+=[task::Resource|STRING])* '}')?
		public Group getGroup_3() { return cGroup_3; }

		//'binIncludes'
		public Keyword getBinIncludesKeyword_3_0() { return cBinIncludesKeyword_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_2() { return cLeftCurlyBracketKeyword_3_2; }

		//binIncludes+=[task::Resource|STRING]
		public Assignment getBinIncludesAssignment_3_3() { return cBinIncludesAssignment_3_3; }

		//[task::Resource|STRING]
		public CrossReference getBinIncludesResourceCrossReference_3_3_0() { return cBinIncludesResourceCrossReference_3_3_0; }

		//STRING
		public RuleCall getBinIncludesResourceSTRINGTerminalRuleCall_3_3_0_1() { return cBinIncludesResourceSTRINGTerminalRuleCall_3_3_0_1; }

		//(',' binIncludes+=[task::Resource|STRING])*
		public Group getGroup_3_4() { return cGroup_3_4; }

		//','
		public Keyword getCommaKeyword_3_4_0() { return cCommaKeyword_3_4_0; }

		//binIncludes+=[task::Resource|STRING]
		public Assignment getBinIncludesAssignment_3_4_1() { return cBinIncludesAssignment_3_4_1; }

		//[task::Resource|STRING]
		public CrossReference getBinIncludesResourceCrossReference_3_4_1_0() { return cBinIncludesResourceCrossReference_3_4_1_0; }

		//STRING
		public RuleCall getBinIncludesResourceSTRINGTerminalRuleCall_3_4_1_0_1() { return cBinIncludesResourceSTRINGTerminalRuleCall_3_4_1_0_1; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_5() { return cRightCurlyBracketKeyword_3_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ProductFileFeaturebaseElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ProductFileFeaturebase");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cProductFileFeaturebaseAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cIncludeLaunchersAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cIncludeLaunchersLaunchableKeyword_1_0 = (Keyword)cIncludeLaunchersAssignment_1.eContents().get(0);
		private final Keyword cProductFileFeaturebaseKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cIdAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cIdSTRINGTerminalRuleCall_3_0 = (RuleCall)cIdAssignment_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final UnorderedGroup cUnorderedGroup_5 = (UnorderedGroup)cGroup.eContents().get(5);
		private final Group cGroup_5_0 = (Group)cUnorderedGroup_5.eContents().get(0);
		private final Keyword cVmArgsKeyword_5_0_0 = (Keyword)cGroup_5_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_0_1 = (Keyword)cGroup_5_0.eContents().get(1);
		private final Assignment cVmArgsAssignment_5_0_2 = (Assignment)cGroup_5_0.eContents().get(2);
		private final RuleCall cVmArgsSTRINGTerminalRuleCall_5_0_2_0 = (RuleCall)cVmArgsAssignment_5_0_2.eContents().get(0);
		private final Group cGroup_5_1 = (Group)cUnorderedGroup_5.eContents().get(1);
		private final Keyword cProgramArgsKeyword_5_1_0 = (Keyword)cGroup_5_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_1_1 = (Keyword)cGroup_5_1.eContents().get(1);
		private final Assignment cProgramArgsAssignment_5_1_2 = (Assignment)cGroup_5_1.eContents().get(2);
		private final RuleCall cProgramArgsSTRINGTerminalRuleCall_5_1_2_0 = (RuleCall)cProgramArgsAssignment_5_1_2.eContents().get(0);
		private final Group cGroup_5_2 = (Group)cUnorderedGroup_5.eContents().get(2);
		private final Keyword cProductNameKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_2_1 = (Keyword)cGroup_5_2.eContents().get(1);
		private final Assignment cProductNameAssignment_5_2_2 = (Assignment)cGroup_5_2.eContents().get(2);
		private final RuleCall cProductNameSTRINGTerminalRuleCall_5_2_2_0 = (RuleCall)cProductNameAssignment_5_2_2.eContents().get(0);
		private final Group cGroup_5_3 = (Group)cUnorderedGroup_5.eContents().get(3);
		private final Keyword cApplicationKeyword_5_3_0 = (Keyword)cGroup_5_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_3_1 = (Keyword)cGroup_5_3.eContents().get(1);
		private final Assignment cApplicationAssignment_5_3_2 = (Assignment)cGroup_5_3.eContents().get(2);
		private final RuleCall cApplicationSTRINGTerminalRuleCall_5_3_2_0 = (RuleCall)cApplicationAssignment_5_3_2.eContents().get(0);
		private final Group cGroup_5_4 = (Group)cUnorderedGroup_5.eContents().get(4);
		private final Keyword cVersionKeyword_5_4_0 = (Keyword)cGroup_5_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_4_1 = (Keyword)cGroup_5_4.eContents().get(1);
		private final Assignment cVersionAssignment_5_4_2 = (Assignment)cGroup_5_4.eContents().get(2);
		private final RuleCall cVersionSTRINGTerminalRuleCall_5_4_2_0 = (RuleCall)cVersionAssignment_5_4_2.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cStartconfigurationsKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cEqualsSignKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2);
		private final Assignment cStartconfigurationsAssignment_6_3 = (Assignment)cGroup_6.eContents().get(3);
		private final RuleCall cStartconfigurationsProductStartConfigParserRuleCall_6_3_0 = (RuleCall)cStartconfigurationsAssignment_6_3.eContents().get(0);
		private final Group cGroup_6_4 = (Group)cGroup_6.eContents().get(4);
		private final Keyword cCommaKeyword_6_4_0 = (Keyword)cGroup_6_4.eContents().get(0);
		private final Assignment cStartconfigurationsAssignment_6_4_1 = (Assignment)cGroup_6_4.eContents().get(1);
		private final RuleCall cStartconfigurationsProductStartConfigParserRuleCall_6_4_1_0 = (RuleCall)cStartconfigurationsAssignment_6_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6_5 = (Keyword)cGroup_6.eContents().get(5);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cFeaturesKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cEqualsSignKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		private final Assignment cFeaturesAssignment_7_3 = (Assignment)cGroup_7.eContents().get(3);
		private final RuleCall cFeaturesProductFeatureParserRuleCall_7_3_0 = (RuleCall)cFeaturesAssignment_7_3.eContents().get(0);
		private final Group cGroup_7_4 = (Group)cGroup_7.eContents().get(4);
		private final Keyword cCommaKeyword_7_4_0 = (Keyword)cGroup_7_4.eContents().get(0);
		private final Assignment cFeaturesAssignment_7_4_1 = (Assignment)cGroup_7_4.eContents().get(1);
		private final RuleCall cFeaturesProductFeatureParserRuleCall_7_4_1_0 = (RuleCall)cFeaturesAssignment_7_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7_5 = (Keyword)cGroup_7.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cExcludedIfKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_9_1_0 = (RuleCall)cExcludeExpressionAssignment_9_1.eContents().get(0);
		
		//ProductFileFeaturebase bundle::ProductFileFeaturebase:
		//	{bundle::ProductFileFeaturebase} includeLaunchers?='launchable'? 'ProductFileFeaturebase' id=STRING '{' (('vmArgs' '='
		//	vmArgs=STRING)?
		//	& ('programArgs' '=' programArgs=STRING)?
		//	&
		//	'productName' '=' productName=STRING
		//	&
		//	'application' '=' application=STRING
		//	&
		//	'version' '=' version=STRING) ('startconfigurations' '=' '{'
		//	startconfigurations+=ProductStartConfig (',' startconfigurations+=ProductStartConfig)*
		//	'}')? ('features' '=' '{'
		//	features+=ProductFeature (',' features+=ProductFeature)*
		//	'}')?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ProductFileFeaturebase} includeLaunchers?='launchable'? 'ProductFileFeaturebase' id=STRING '{' (('vmArgs' '='
		//vmArgs=STRING)? & ('programArgs' '=' programArgs=STRING)? & 'productName' '=' productName=STRING & 'application' '='
		//application=STRING & 'version' '=' version=STRING) ('startconfigurations' '=' '{'
		//startconfigurations+=ProductStartConfig (',' startconfigurations+=ProductStartConfig)* '}')? ('features' '=' '{'
		//features+=ProductFeature (',' features+=ProductFeature)* '}')? '}' ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::ProductFileFeaturebase}
		public Action getProductFileFeaturebaseAction_0() { return cProductFileFeaturebaseAction_0; }

		//includeLaunchers?='launchable'?
		public Assignment getIncludeLaunchersAssignment_1() { return cIncludeLaunchersAssignment_1; }

		//'launchable'
		public Keyword getIncludeLaunchersLaunchableKeyword_1_0() { return cIncludeLaunchersLaunchableKeyword_1_0; }

		//'ProductFileFeaturebase'
		public Keyword getProductFileFeaturebaseKeyword_2() { return cProductFileFeaturebaseKeyword_2; }

		//id=STRING
		public Assignment getIdAssignment_3() { return cIdAssignment_3; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_3_0() { return cIdSTRINGTerminalRuleCall_3_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }

		//('vmArgs' '=' vmArgs=STRING)? & ('programArgs' '=' programArgs=STRING)? & 'productName' '=' productName=STRING &
		//'application' '=' application=STRING & 'version' '=' version=STRING
		public UnorderedGroup getUnorderedGroup_5() { return cUnorderedGroup_5; }

		//('vmArgs' '=' vmArgs=STRING)?
		public Group getGroup_5_0() { return cGroup_5_0; }

		//'vmArgs'
		public Keyword getVmArgsKeyword_5_0_0() { return cVmArgsKeyword_5_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_0_1() { return cEqualsSignKeyword_5_0_1; }

		//vmArgs=STRING
		public Assignment getVmArgsAssignment_5_0_2() { return cVmArgsAssignment_5_0_2; }

		//STRING
		public RuleCall getVmArgsSTRINGTerminalRuleCall_5_0_2_0() { return cVmArgsSTRINGTerminalRuleCall_5_0_2_0; }

		//('programArgs' '=' programArgs=STRING)?
		public Group getGroup_5_1() { return cGroup_5_1; }

		//'programArgs'
		public Keyword getProgramArgsKeyword_5_1_0() { return cProgramArgsKeyword_5_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_1_1() { return cEqualsSignKeyword_5_1_1; }

		//programArgs=STRING
		public Assignment getProgramArgsAssignment_5_1_2() { return cProgramArgsAssignment_5_1_2; }

		//STRING
		public RuleCall getProgramArgsSTRINGTerminalRuleCall_5_1_2_0() { return cProgramArgsSTRINGTerminalRuleCall_5_1_2_0; }

		//'productName' '=' productName=STRING
		public Group getGroup_5_2() { return cGroup_5_2; }

		//'productName'
		public Keyword getProductNameKeyword_5_2_0() { return cProductNameKeyword_5_2_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_2_1() { return cEqualsSignKeyword_5_2_1; }

		//productName=STRING
		public Assignment getProductNameAssignment_5_2_2() { return cProductNameAssignment_5_2_2; }

		//STRING
		public RuleCall getProductNameSTRINGTerminalRuleCall_5_2_2_0() { return cProductNameSTRINGTerminalRuleCall_5_2_2_0; }

		//'application' '=' application=STRING
		public Group getGroup_5_3() { return cGroup_5_3; }

		//'application'
		public Keyword getApplicationKeyword_5_3_0() { return cApplicationKeyword_5_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_3_1() { return cEqualsSignKeyword_5_3_1; }

		//application=STRING
		public Assignment getApplicationAssignment_5_3_2() { return cApplicationAssignment_5_3_2; }

		//STRING
		public RuleCall getApplicationSTRINGTerminalRuleCall_5_3_2_0() { return cApplicationSTRINGTerminalRuleCall_5_3_2_0; }

		//'version' '=' version=STRING
		public Group getGroup_5_4() { return cGroup_5_4; }

		//'version'
		public Keyword getVersionKeyword_5_4_0() { return cVersionKeyword_5_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_4_1() { return cEqualsSignKeyword_5_4_1; }

		//version=STRING
		public Assignment getVersionAssignment_5_4_2() { return cVersionAssignment_5_4_2; }

		//STRING
		public RuleCall getVersionSTRINGTerminalRuleCall_5_4_2_0() { return cVersionSTRINGTerminalRuleCall_5_4_2_0; }

		//('startconfigurations' '=' '{' startconfigurations+=ProductStartConfig (',' startconfigurations+=ProductStartConfig)*
		//'}')?
		public Group getGroup_6() { return cGroup_6; }

		//'startconfigurations'
		public Keyword getStartconfigurationsKeyword_6_0() { return cStartconfigurationsKeyword_6_0; }

		//'='
		public Keyword getEqualsSignKeyword_6_1() { return cEqualsSignKeyword_6_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_6_2() { return cLeftCurlyBracketKeyword_6_2; }

		//startconfigurations+=ProductStartConfig
		public Assignment getStartconfigurationsAssignment_6_3() { return cStartconfigurationsAssignment_6_3; }

		//ProductStartConfig
		public RuleCall getStartconfigurationsProductStartConfigParserRuleCall_6_3_0() { return cStartconfigurationsProductStartConfigParserRuleCall_6_3_0; }

		//(',' startconfigurations+=ProductStartConfig)*
		public Group getGroup_6_4() { return cGroup_6_4; }

		//','
		public Keyword getCommaKeyword_6_4_0() { return cCommaKeyword_6_4_0; }

		//startconfigurations+=ProductStartConfig
		public Assignment getStartconfigurationsAssignment_6_4_1() { return cStartconfigurationsAssignment_6_4_1; }

		//ProductStartConfig
		public RuleCall getStartconfigurationsProductStartConfigParserRuleCall_6_4_1_0() { return cStartconfigurationsProductStartConfigParserRuleCall_6_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_6_5() { return cRightCurlyBracketKeyword_6_5; }

		//('features' '=' '{' features+=ProductFeature (',' features+=ProductFeature)* '}')?
		public Group getGroup_7() { return cGroup_7; }

		//'features'
		public Keyword getFeaturesKeyword_7_0() { return cFeaturesKeyword_7_0; }

		//'='
		public Keyword getEqualsSignKeyword_7_1() { return cEqualsSignKeyword_7_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_7_2() { return cLeftCurlyBracketKeyword_7_2; }

		//features+=ProductFeature
		public Assignment getFeaturesAssignment_7_3() { return cFeaturesAssignment_7_3; }

		//ProductFeature
		public RuleCall getFeaturesProductFeatureParserRuleCall_7_3_0() { return cFeaturesProductFeatureParserRuleCall_7_3_0; }

		//(',' features+=ProductFeature)*
		public Group getGroup_7_4() { return cGroup_7_4; }

		//','
		public Keyword getCommaKeyword_7_4_0() { return cCommaKeyword_7_4_0; }

		//features+=ProductFeature
		public Assignment getFeaturesAssignment_7_4_1() { return cFeaturesAssignment_7_4_1; }

		//ProductFeature
		public RuleCall getFeaturesProductFeatureParserRuleCall_7_4_1_0() { return cFeaturesProductFeatureParserRuleCall_7_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_7_5() { return cRightCurlyBracketKeyword_7_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_9() { return cGroup_9; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_9_0() { return cExcludedIfKeyword_9_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_9_1() { return cExcludeExpressionAssignment_9_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_9_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_9_1_0; }
	}

	public class FeatureFileElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.FeatureFile");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cFeatureFileAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cFeatureFileKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cFeatureidAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cFeatureidSTRINGTerminalRuleCall_2_0 = (RuleCall)cFeatureidAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
		private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
		private final Keyword cVersionKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_0_1 = (Keyword)cGroup_4_0.eContents().get(1);
		private final Assignment cVersionAssignment_4_0_2 = (Assignment)cGroup_4_0.eContents().get(2);
		private final RuleCall cVersionSTRINGTerminalRuleCall_4_0_2_0 = (RuleCall)cVersionAssignment_4_0_2.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
		private final Keyword cFeaturenameKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
		private final Assignment cFeaturenameAssignment_4_1_2 = (Assignment)cGroup_4_1.eContents().get(2);
		private final RuleCall cFeaturenameSTRINGTerminalRuleCall_4_1_2_0 = (RuleCall)cFeaturenameAssignment_4_1_2.eContents().get(0);
		private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
		private final Keyword cVendorKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_2_1 = (Keyword)cGroup_4_2.eContents().get(1);
		private final Assignment cVendorAssignment_4_2_2 = (Assignment)cGroup_4_2.eContents().get(2);
		private final RuleCall cVendorSTRINGTerminalRuleCall_4_2_2_0 = (RuleCall)cVendorAssignment_4_2_2.eContents().get(0);
		private final Group cGroup_4_3 = (Group)cUnorderedGroup_4.eContents().get(3);
		private final Keyword cDescriptionKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_3_1 = (Keyword)cGroup_4_3.eContents().get(1);
		private final Assignment cDescriptionAssignment_4_3_2 = (Assignment)cGroup_4_3.eContents().get(2);
		private final RuleCall cDescriptionLinkedStringParserRuleCall_4_3_2_0 = (RuleCall)cDescriptionAssignment_4_3_2.eContents().get(0);
		private final Group cGroup_4_4 = (Group)cUnorderedGroup_4.eContents().get(4);
		private final Keyword cCopyrightKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_4_1 = (Keyword)cGroup_4_4.eContents().get(1);
		private final Assignment cCopyrightAssignment_4_4_2 = (Assignment)cGroup_4_4.eContents().get(2);
		private final RuleCall cCopyrightLinkedStringParserRuleCall_4_4_2_0 = (RuleCall)cCopyrightAssignment_4_4_2.eContents().get(0);
		private final Group cGroup_4_5 = (Group)cUnorderedGroup_4.eContents().get(5);
		private final Keyword cLicenseKeyword_4_5_0 = (Keyword)cGroup_4_5.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_5_1 = (Keyword)cGroup_4_5.eContents().get(1);
		private final Assignment cLicenseAssignment_4_5_2 = (Assignment)cGroup_4_5.eContents().get(2);
		private final RuleCall cLicenseLinkedStringParserRuleCall_4_5_2_0 = (RuleCall)cLicenseAssignment_4_5_2.eContents().get(0);
		private final UnorderedGroup cUnorderedGroup_4_6 = (UnorderedGroup)cUnorderedGroup_4.eContents().get(6);
		private final Group cGroup_4_6_0 = (Group)cUnorderedGroup_4_6.eContents().get(0);
		private final Keyword cLicenseFeatureKeyword_4_6_0_0 = (Keyword)cGroup_4_6_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_6_0_1 = (Keyword)cGroup_4_6_0.eContents().get(1);
		private final Assignment cLicense_featureAssignment_4_6_0_2 = (Assignment)cGroup_4_6_0.eContents().get(2);
		private final RuleCall cLicense_featureSTRINGTerminalRuleCall_4_6_0_2_0 = (RuleCall)cLicense_featureAssignment_4_6_0_2.eContents().get(0);
		private final Group cGroup_4_6_1 = (Group)cUnorderedGroup_4_6.eContents().get(1);
		private final Keyword cLicenseFeatureVersionKeyword_4_6_1_0 = (Keyword)cGroup_4_6_1.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_6_1_1 = (Keyword)cGroup_4_6_1.eContents().get(1);
		private final Assignment cLicense_feature_versionAssignment_4_6_1_2 = (Assignment)cGroup_4_6_1.eContents().get(2);
		private final RuleCall cLicense_feature_versionVersionParserRuleCall_4_6_1_2_0 = (RuleCall)cLicense_feature_versionAssignment_4_6_1_2.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cPluginsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cEqualsSignKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_5_2 = (Keyword)cGroup_5.eContents().get(2);
		private final Assignment cPluginsAssignment_5_3 = (Assignment)cGroup_5.eContents().get(3);
		private final RuleCall cPluginsFeaturePluginParserRuleCall_5_3_0 = (RuleCall)cPluginsAssignment_5_3.eContents().get(0);
		private final Group cGroup_5_4 = (Group)cGroup_5.eContents().get(4);
		private final Keyword cCommaKeyword_5_4_0 = (Keyword)cGroup_5_4.eContents().get(0);
		private final Assignment cPluginsAssignment_5_4_1 = (Assignment)cGroup_5_4.eContents().get(1);
		private final RuleCall cPluginsFeaturePluginParserRuleCall_5_4_1_0 = (RuleCall)cPluginsAssignment_5_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5_5 = (Keyword)cGroup_5.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cRequiredKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cEqualsSignKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2);
		private final Assignment cRequiredfeaturesAssignment_6_3 = (Assignment)cGroup_6.eContents().get(3);
		private final RuleCall cRequiredfeaturesRequiredFeatureParserRuleCall_6_3_0 = (RuleCall)cRequiredfeaturesAssignment_6_3.eContents().get(0);
		private final Group cGroup_6_4 = (Group)cGroup_6.eContents().get(4);
		private final Keyword cCommaKeyword_6_4_0 = (Keyword)cGroup_6_4.eContents().get(0);
		private final Assignment cRequiredfeaturesAssignment_6_4_1 = (Assignment)cGroup_6_4.eContents().get(1);
		private final RuleCall cRequiredfeaturesRequiredFeatureParserRuleCall_6_4_1_0 = (RuleCall)cRequiredfeaturesAssignment_6_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6_5 = (Keyword)cGroup_6.eContents().get(5);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cIncludedKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cEqualsSignKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		private final Assignment cIncludedfeaturesAssignment_7_3 = (Assignment)cGroup_7.eContents().get(3);
		private final RuleCall cIncludedfeaturesIncludedFeatureParserRuleCall_7_3_0 = (RuleCall)cIncludedfeaturesAssignment_7_3.eContents().get(0);
		private final Group cGroup_7_4 = (Group)cGroup_7.eContents().get(4);
		private final Keyword cCommaKeyword_7_4_0 = (Keyword)cGroup_7_4.eContents().get(0);
		private final Assignment cIncludedfeaturesAssignment_7_4_1 = (Assignment)cGroup_7_4.eContents().get(1);
		private final RuleCall cIncludedfeaturesIncludedFeatureParserRuleCall_7_4_1_0 = (RuleCall)cIncludedfeaturesAssignment_7_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7_5 = (Keyword)cGroup_7.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//FeatureFile bundle::FeatureFile:
		//	{bundle::FeatureFile}
		//	'FeatureFile' featureid=STRING '{' ('version' '=' version=STRING
		//	&
		//	'featurename' '=' featurename=STRING
		//	&
		//	'vendor' '=' vendor=STRING
		//	&
		//	'description' '=' description=LinkedString
		//	&
		//	'copyright' '=' copyright=LinkedString
		//	&
		//	'license' '=' license=LinkedString
		//	& ('license-feature' '=' license_feature=STRING
		//	&
		//	'license-feature-version' '=' license_feature_version=Version)?) ('plugins' '=' '{'
		//	plugins+=FeaturePlugin (',' plugins+=FeaturePlugin)*
		//	'}')? ('required' '=' '{' requiredfeatures+=RequiredFeature (',' requiredfeatures+=RequiredFeature)* '}')? ('included'
		//	'=' '{' includedfeatures+=IncludedFeature (',' includedfeatures+=IncludedFeature)* '}')?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::FeatureFile} 'FeatureFile' featureid=STRING '{' ('version' '=' version=STRING & 'featurename' '='
		//featurename=STRING & 'vendor' '=' vendor=STRING & 'description' '=' description=LinkedString & 'copyright' '='
		//copyright=LinkedString & 'license' '=' license=LinkedString & ('license-feature' '=' license_feature=STRING &
		//'license-feature-version' '=' license_feature_version=Version)?) ('plugins' '=' '{' plugins+=FeaturePlugin (','
		//plugins+=FeaturePlugin)* '}')? ('required' '=' '{' requiredfeatures+=RequiredFeature (','
		//requiredfeatures+=RequiredFeature)* '}')? ('included' '=' '{' includedfeatures+=IncludedFeature (','
		//includedfeatures+=IncludedFeature)* '}')? '}'
		public Group getGroup() { return cGroup; }

		//{bundle::FeatureFile}
		public Action getFeatureFileAction_0() { return cFeatureFileAction_0; }

		//'FeatureFile'
		public Keyword getFeatureFileKeyword_1() { return cFeatureFileKeyword_1; }

		//featureid=STRING
		public Assignment getFeatureidAssignment_2() { return cFeatureidAssignment_2; }

		//STRING
		public RuleCall getFeatureidSTRINGTerminalRuleCall_2_0() { return cFeatureidSTRINGTerminalRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//'version' '=' version=STRING & 'featurename' '=' featurename=STRING & 'vendor' '=' vendor=STRING & 'description' '='
		//description=LinkedString & 'copyright' '=' copyright=LinkedString & 'license' '=' license=LinkedString &
		//('license-feature' '=' license_feature=STRING & 'license-feature-version' '=' license_feature_version=Version)?
		public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }

		//'version' '=' version=STRING
		public Group getGroup_4_0() { return cGroup_4_0; }

		//'version'
		public Keyword getVersionKeyword_4_0_0() { return cVersionKeyword_4_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_0_1() { return cEqualsSignKeyword_4_0_1; }

		//version=STRING
		public Assignment getVersionAssignment_4_0_2() { return cVersionAssignment_4_0_2; }

		//STRING
		public RuleCall getVersionSTRINGTerminalRuleCall_4_0_2_0() { return cVersionSTRINGTerminalRuleCall_4_0_2_0; }

		//'featurename' '=' featurename=STRING
		public Group getGroup_4_1() { return cGroup_4_1; }

		//'featurename'
		public Keyword getFeaturenameKeyword_4_1_0() { return cFeaturenameKeyword_4_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1_1() { return cEqualsSignKeyword_4_1_1; }

		//featurename=STRING
		public Assignment getFeaturenameAssignment_4_1_2() { return cFeaturenameAssignment_4_1_2; }

		//STRING
		public RuleCall getFeaturenameSTRINGTerminalRuleCall_4_1_2_0() { return cFeaturenameSTRINGTerminalRuleCall_4_1_2_0; }

		//'vendor' '=' vendor=STRING
		public Group getGroup_4_2() { return cGroup_4_2; }

		//'vendor'
		public Keyword getVendorKeyword_4_2_0() { return cVendorKeyword_4_2_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_2_1() { return cEqualsSignKeyword_4_2_1; }

		//vendor=STRING
		public Assignment getVendorAssignment_4_2_2() { return cVendorAssignment_4_2_2; }

		//STRING
		public RuleCall getVendorSTRINGTerminalRuleCall_4_2_2_0() { return cVendorSTRINGTerminalRuleCall_4_2_2_0; }

		//'description' '=' description=LinkedString
		public Group getGroup_4_3() { return cGroup_4_3; }

		//'description'
		public Keyword getDescriptionKeyword_4_3_0() { return cDescriptionKeyword_4_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_3_1() { return cEqualsSignKeyword_4_3_1; }

		//description=LinkedString
		public Assignment getDescriptionAssignment_4_3_2() { return cDescriptionAssignment_4_3_2; }

		//LinkedString
		public RuleCall getDescriptionLinkedStringParserRuleCall_4_3_2_0() { return cDescriptionLinkedStringParserRuleCall_4_3_2_0; }

		//'copyright' '=' copyright=LinkedString
		public Group getGroup_4_4() { return cGroup_4_4; }

		//'copyright'
		public Keyword getCopyrightKeyword_4_4_0() { return cCopyrightKeyword_4_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_4_1() { return cEqualsSignKeyword_4_4_1; }

		//copyright=LinkedString
		public Assignment getCopyrightAssignment_4_4_2() { return cCopyrightAssignment_4_4_2; }

		//LinkedString
		public RuleCall getCopyrightLinkedStringParserRuleCall_4_4_2_0() { return cCopyrightLinkedStringParserRuleCall_4_4_2_0; }

		//'license' '=' license=LinkedString
		public Group getGroup_4_5() { return cGroup_4_5; }

		//'license'
		public Keyword getLicenseKeyword_4_5_0() { return cLicenseKeyword_4_5_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_5_1() { return cEqualsSignKeyword_4_5_1; }

		//license=LinkedString
		public Assignment getLicenseAssignment_4_5_2() { return cLicenseAssignment_4_5_2; }

		//LinkedString
		public RuleCall getLicenseLinkedStringParserRuleCall_4_5_2_0() { return cLicenseLinkedStringParserRuleCall_4_5_2_0; }

		//('license-feature' '=' license_feature=STRING & 'license-feature-version' '=' license_feature_version=Version)?
		public UnorderedGroup getUnorderedGroup_4_6() { return cUnorderedGroup_4_6; }

		//'license-feature' '=' license_feature=STRING
		public Group getGroup_4_6_0() { return cGroup_4_6_0; }

		//'license-feature'
		public Keyword getLicenseFeatureKeyword_4_6_0_0() { return cLicenseFeatureKeyword_4_6_0_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_6_0_1() { return cEqualsSignKeyword_4_6_0_1; }

		//license_feature=STRING
		public Assignment getLicense_featureAssignment_4_6_0_2() { return cLicense_featureAssignment_4_6_0_2; }

		//STRING
		public RuleCall getLicense_featureSTRINGTerminalRuleCall_4_6_0_2_0() { return cLicense_featureSTRINGTerminalRuleCall_4_6_0_2_0; }

		//'license-feature-version' '=' license_feature_version=Version
		public Group getGroup_4_6_1() { return cGroup_4_6_1; }

		//'license-feature-version'
		public Keyword getLicenseFeatureVersionKeyword_4_6_1_0() { return cLicenseFeatureVersionKeyword_4_6_1_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_6_1_1() { return cEqualsSignKeyword_4_6_1_1; }

		//license_feature_version=Version
		public Assignment getLicense_feature_versionAssignment_4_6_1_2() { return cLicense_feature_versionAssignment_4_6_1_2; }

		//Version
		public RuleCall getLicense_feature_versionVersionParserRuleCall_4_6_1_2_0() { return cLicense_feature_versionVersionParserRuleCall_4_6_1_2_0; }

		//('plugins' '=' '{' plugins+=FeaturePlugin (',' plugins+=FeaturePlugin)* '}')?
		public Group getGroup_5() { return cGroup_5; }

		//'plugins'
		public Keyword getPluginsKeyword_5_0() { return cPluginsKeyword_5_0; }

		//'='
		public Keyword getEqualsSignKeyword_5_1() { return cEqualsSignKeyword_5_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_5_2() { return cLeftCurlyBracketKeyword_5_2; }

		//plugins+=FeaturePlugin
		public Assignment getPluginsAssignment_5_3() { return cPluginsAssignment_5_3; }

		//FeaturePlugin
		public RuleCall getPluginsFeaturePluginParserRuleCall_5_3_0() { return cPluginsFeaturePluginParserRuleCall_5_3_0; }

		//(',' plugins+=FeaturePlugin)*
		public Group getGroup_5_4() { return cGroup_5_4; }

		//','
		public Keyword getCommaKeyword_5_4_0() { return cCommaKeyword_5_4_0; }

		//plugins+=FeaturePlugin
		public Assignment getPluginsAssignment_5_4_1() { return cPluginsAssignment_5_4_1; }

		//FeaturePlugin
		public RuleCall getPluginsFeaturePluginParserRuleCall_5_4_1_0() { return cPluginsFeaturePluginParserRuleCall_5_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5_5() { return cRightCurlyBracketKeyword_5_5; }

		//('required' '=' '{' requiredfeatures+=RequiredFeature (',' requiredfeatures+=RequiredFeature)* '}')?
		public Group getGroup_6() { return cGroup_6; }

		//'required'
		public Keyword getRequiredKeyword_6_0() { return cRequiredKeyword_6_0; }

		//'='
		public Keyword getEqualsSignKeyword_6_1() { return cEqualsSignKeyword_6_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_6_2() { return cLeftCurlyBracketKeyword_6_2; }

		//requiredfeatures+=RequiredFeature
		public Assignment getRequiredfeaturesAssignment_6_3() { return cRequiredfeaturesAssignment_6_3; }

		//RequiredFeature
		public RuleCall getRequiredfeaturesRequiredFeatureParserRuleCall_6_3_0() { return cRequiredfeaturesRequiredFeatureParserRuleCall_6_3_0; }

		//(',' requiredfeatures+=RequiredFeature)*
		public Group getGroup_6_4() { return cGroup_6_4; }

		//','
		public Keyword getCommaKeyword_6_4_0() { return cCommaKeyword_6_4_0; }

		//requiredfeatures+=RequiredFeature
		public Assignment getRequiredfeaturesAssignment_6_4_1() { return cRequiredfeaturesAssignment_6_4_1; }

		//RequiredFeature
		public RuleCall getRequiredfeaturesRequiredFeatureParserRuleCall_6_4_1_0() { return cRequiredfeaturesRequiredFeatureParserRuleCall_6_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_6_5() { return cRightCurlyBracketKeyword_6_5; }

		//('included' '=' '{' includedfeatures+=IncludedFeature (',' includedfeatures+=IncludedFeature)* '}')?
		public Group getGroup_7() { return cGroup_7; }

		//'included'
		public Keyword getIncludedKeyword_7_0() { return cIncludedKeyword_7_0; }

		//'='
		public Keyword getEqualsSignKeyword_7_1() { return cEqualsSignKeyword_7_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_7_2() { return cLeftCurlyBracketKeyword_7_2; }

		//includedfeatures+=IncludedFeature
		public Assignment getIncludedfeaturesAssignment_7_3() { return cIncludedfeaturesAssignment_7_3; }

		//IncludedFeature
		public RuleCall getIncludedfeaturesIncludedFeatureParserRuleCall_7_3_0() { return cIncludedfeaturesIncludedFeatureParserRuleCall_7_3_0; }

		//(',' includedfeatures+=IncludedFeature)*
		public Group getGroup_7_4() { return cGroup_7_4; }

		//','
		public Keyword getCommaKeyword_7_4_0() { return cCommaKeyword_7_4_0; }

		//includedfeatures+=IncludedFeature
		public Assignment getIncludedfeaturesAssignment_7_4_1() { return cIncludedfeaturesAssignment_7_4_1; }

		//IncludedFeature
		public RuleCall getIncludedfeaturesIncludedFeatureParserRuleCall_7_4_1_0() { return cIncludedfeaturesIncludedFeatureParserRuleCall_7_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_7_5() { return cRightCurlyBracketKeyword_7_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
	}

	public class ImportedPackageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ImportedPackage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cImportedPackageAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Alternatives cAlternatives_2_0 = (Alternatives)cGroup_2.eContents().get(0);
		private final Assignment cMinExclusiveAssignment_2_0_0 = (Assignment)cAlternatives_2_0.eContents().get(0);
		private final Keyword cMinExclusiveLeftParenthesisKeyword_2_0_0_0 = (Keyword)cMinExclusiveAssignment_2_0_0.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_2_0_1 = (Keyword)cAlternatives_2_0.eContents().get(1);
		private final Assignment cMinVersionAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cMinVersionVersionParserRuleCall_2_1_0 = (RuleCall)cMinVersionAssignment_2_1.eContents().get(0);
		private final Keyword cCommaKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
		private final Group cGroup_2_3 = (Group)cGroup_2.eContents().get(3);
		private final Assignment cMaxVersionAssignment_2_3_0 = (Assignment)cGroup_2_3.eContents().get(0);
		private final RuleCall cMaxVersionVersionParserRuleCall_2_3_0_0 = (RuleCall)cMaxVersionAssignment_2_3_0.eContents().get(0);
		private final Alternatives cAlternatives_2_3_1 = (Alternatives)cGroup_2_3.eContents().get(1);
		private final Assignment cMaxExclusiveAssignment_2_3_1_0 = (Assignment)cAlternatives_2_3_1.eContents().get(0);
		private final Keyword cMaxExclusiveRightParenthesisKeyword_2_3_1_0_0 = (Keyword)cMaxExclusiveAssignment_2_3_1_0.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_2_3_1_1 = (Keyword)cAlternatives_2_3_1.eContents().get(1);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExcludedIfKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExcludeExpressionAssignment_3_1.eContents().get(0);
		
		//ImportedPackage bundle::ImportedPackage:
		//	{bundle::ImportedPackage} name=STRING ((minExclusive?='('? | '[') minVersion=Version? ',' (maxVersion=Version?
		//	(maxExclusive?=')'? | ']')))? ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ImportedPackage} name=STRING ((minExclusive?='('? | '[') minVersion=Version? ',' (maxVersion=Version?
		//(maxExclusive?=')'? | ']')))? ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::ImportedPackage}
		public Action getImportedPackageAction_0() { return cImportedPackageAction_0; }

		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }

		//((minExclusive?='('? | '[') minVersion=Version? ',' (maxVersion=Version? (maxExclusive?=')'? | ']')))?
		public Group getGroup_2() { return cGroup_2; }

		//minExclusive?='('? | '['
		public Alternatives getAlternatives_2_0() { return cAlternatives_2_0; }

		//minExclusive?='('?
		public Assignment getMinExclusiveAssignment_2_0_0() { return cMinExclusiveAssignment_2_0_0; }

		//'('
		public Keyword getMinExclusiveLeftParenthesisKeyword_2_0_0_0() { return cMinExclusiveLeftParenthesisKeyword_2_0_0_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_2_0_1() { return cLeftSquareBracketKeyword_2_0_1; }

		//minVersion=Version?
		public Assignment getMinVersionAssignment_2_1() { return cMinVersionAssignment_2_1; }

		//Version
		public RuleCall getMinVersionVersionParserRuleCall_2_1_0() { return cMinVersionVersionParserRuleCall_2_1_0; }

		//','
		public Keyword getCommaKeyword_2_2() { return cCommaKeyword_2_2; }

		//maxVersion=Version? (maxExclusive?=')'? | ']')
		public Group getGroup_2_3() { return cGroup_2_3; }

		//maxVersion=Version?
		public Assignment getMaxVersionAssignment_2_3_0() { return cMaxVersionAssignment_2_3_0; }

		//Version
		public RuleCall getMaxVersionVersionParserRuleCall_2_3_0_0() { return cMaxVersionVersionParserRuleCall_2_3_0_0; }

		//maxExclusive?=')'? | ']'
		public Alternatives getAlternatives_2_3_1() { return cAlternatives_2_3_1; }

		//maxExclusive?=')'?
		public Assignment getMaxExclusiveAssignment_2_3_1_0() { return cMaxExclusiveAssignment_2_3_1_0; }

		//')'
		public Keyword getMaxExclusiveRightParenthesisKeyword_2_3_1_0_0() { return cMaxExclusiveRightParenthesisKeyword_2_3_1_0_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_2_3_1_1() { return cRightSquareBracketKeyword_2_3_1_1; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_3() { return cGroup_3; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_3_0() { return cExcludedIfKeyword_3_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_3_1() { return cExcludeExpressionAssignment_3_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0; }
	}

	public class ExportedPackageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ExportedPackage");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cExportedPackageAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Assignment cVersionAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cVersionVersionParserRuleCall_2_0 = (RuleCall)cVersionAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExcludedIfKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExcludeExpressionAssignment_3_1.eContents().get(0);
		
		//ExportedPackage bundle::ExportedPackage:
		//	{bundle::ExportedPackage} name=STRING version=Version? ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ExportedPackage} name=STRING version=Version? ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::ExportedPackage}
		public Action getExportedPackageAction_0() { return cExportedPackageAction_0; }

		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }

		//version=Version?
		public Assignment getVersionAssignment_2() { return cVersionAssignment_2; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_2_0() { return cVersionVersionParserRuleCall_2_0; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_3() { return cGroup_3; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_3_0() { return cExcludedIfKeyword_3_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_3_1() { return cExcludeExpressionAssignment_3_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0; }
	}

	public class ExtensionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Extension");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cExtensionAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cPointAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cPointSTRINGTerminalRuleCall_1_0 = (RuleCall)cPointAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cIdKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Assignment cIdAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final RuleCall cIdSTRINGTerminalRuleCall_3_2_0 = (RuleCall)cIdAssignment_3_2.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cElementsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Assignment cElementsAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cElementsElementParserRuleCall_4_3_0 = (RuleCall)cElementsAssignment_4_3.eContents().get(0);
		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
		private final Keyword cCommaKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
		private final Assignment cElementsAssignment_4_4_1 = (Assignment)cGroup_4_4.eContents().get(1);
		private final RuleCall cElementsElementParserRuleCall_4_4_1_0 = (RuleCall)cElementsAssignment_4_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_5 = (Keyword)cGroup_4.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cExcludedIfKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0 = (RuleCall)cExcludeExpressionAssignment_6_1.eContents().get(0);
		
		//Extension bundle::Extension:
		//	{bundle::Extension} point=STRING '{' ('id' '=' id=STRING)? ('elements' '=' '{'
		//	elements+=Element (',' elements+=Element)*
		//	'}')?
		//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::Extension} point=STRING '{' ('id' '=' id=STRING)? ('elements' '=' '{' elements+=Element (','
		//elements+=Element)* '}')? '}' ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::Extension}
		public Action getExtensionAction_0() { return cExtensionAction_0; }

		//point=STRING
		public Assignment getPointAssignment_1() { return cPointAssignment_1; }

		//STRING
		public RuleCall getPointSTRINGTerminalRuleCall_1_0() { return cPointSTRINGTerminalRuleCall_1_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//('id' '=' id=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//'id'
		public Keyword getIdKeyword_3_0() { return cIdKeyword_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//id=STRING
		public Assignment getIdAssignment_3_2() { return cIdAssignment_3_2; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_3_2_0() { return cIdSTRINGTerminalRuleCall_3_2_0; }

		//('elements' '=' '{' elements+=Element (',' elements+=Element)* '}')?
		public Group getGroup_4() { return cGroup_4; }

		//'elements'
		public Keyword getElementsKeyword_4_0() { return cElementsKeyword_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4_2() { return cLeftCurlyBracketKeyword_4_2; }

		//elements+=Element
		public Assignment getElementsAssignment_4_3() { return cElementsAssignment_4_3; }

		//Element
		public RuleCall getElementsElementParserRuleCall_4_3_0() { return cElementsElementParserRuleCall_4_3_0; }

		//(',' elements+=Element)*
		public Group getGroup_4_4() { return cGroup_4_4; }

		//','
		public Keyword getCommaKeyword_4_4_0() { return cCommaKeyword_4_4_0; }

		//elements+=Element
		public Assignment getElementsAssignment_4_4_1() { return cElementsAssignment_4_4_1; }

		//Element
		public RuleCall getElementsElementParserRuleCall_4_4_1_0() { return cElementsElementParserRuleCall_4_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4_5() { return cRightCurlyBracketKeyword_4_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_6() { return cGroup_6; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_6_0() { return cExcludedIfKeyword_6_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_6_1() { return cExcludeExpressionAssignment_6_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_6_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_6_1_0; }
	}

	public class ElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Element");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cElementAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cAttributesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
		private final Assignment cAttributesAssignment_3_3 = (Assignment)cGroup_3.eContents().get(3);
		private final RuleCall cAttributesAttributeParserRuleCall_3_3_0 = (RuleCall)cAttributesAssignment_3_3.eContents().get(0);
		private final Group cGroup_3_4 = (Group)cGroup_3.eContents().get(4);
		private final Keyword cCommaKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
		private final Assignment cAttributesAssignment_3_4_1 = (Assignment)cGroup_3_4.eContents().get(1);
		private final RuleCall cAttributesAttributeParserRuleCall_3_4_1_0 = (RuleCall)cAttributesAssignment_3_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3_5 = (Keyword)cGroup_3.eContents().get(5);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cChildrenKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Assignment cChildrenAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cChildrenElementParserRuleCall_4_3_0 = (RuleCall)cChildrenAssignment_4_3.eContents().get(0);
		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
		private final Keyword cCommaKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
		private final Assignment cChildrenAssignment_4_4_1 = (Assignment)cGroup_4_4.eContents().get(1);
		private final RuleCall cChildrenElementParserRuleCall_4_4_1_0 = (RuleCall)cChildrenAssignment_4_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_5 = (Keyword)cGroup_4.eContents().get(5);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Element bundle::Element:
		//	{bundle::Element} name=STRING '{' ('attributes' '=' '{'
		//	attributes+=Attribute (',' attributes+=Attribute)*
		//	'}')? ('children' '=' '{'
		//	children+=Element (',' children+=Element)*
		//	'}')?
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::Element} name=STRING '{' ('attributes' '=' '{' attributes+=Attribute (',' attributes+=Attribute)* '}')?
		//('children' '=' '{' children+=Element (',' children+=Element)* '}')? '}'
		public Group getGroup() { return cGroup; }

		//{bundle::Element}
		public Action getElementAction_0() { return cElementAction_0; }

		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//('attributes' '=' '{' attributes+=Attribute (',' attributes+=Attribute)* '}')?
		public Group getGroup_3() { return cGroup_3; }

		//'attributes'
		public Keyword getAttributesKeyword_3_0() { return cAttributesKeyword_3_0; }

		//'='
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_2() { return cLeftCurlyBracketKeyword_3_2; }

		//attributes+=Attribute
		public Assignment getAttributesAssignment_3_3() { return cAttributesAssignment_3_3; }

		//Attribute
		public RuleCall getAttributesAttributeParserRuleCall_3_3_0() { return cAttributesAttributeParserRuleCall_3_3_0; }

		//(',' attributes+=Attribute)*
		public Group getGroup_3_4() { return cGroup_3_4; }

		//','
		public Keyword getCommaKeyword_3_4_0() { return cCommaKeyword_3_4_0; }

		//attributes+=Attribute
		public Assignment getAttributesAssignment_3_4_1() { return cAttributesAssignment_3_4_1; }

		//Attribute
		public RuleCall getAttributesAttributeParserRuleCall_3_4_1_0() { return cAttributesAttributeParserRuleCall_3_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_5() { return cRightCurlyBracketKeyword_3_5; }

		//('children' '=' '{' children+=Element (',' children+=Element)* '}')?
		public Group getGroup_4() { return cGroup_4; }

		//'children'
		public Keyword getChildrenKeyword_4_0() { return cChildrenKeyword_4_0; }

		//'='
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4_2() { return cLeftCurlyBracketKeyword_4_2; }

		//children+=Element
		public Assignment getChildrenAssignment_4_3() { return cChildrenAssignment_4_3; }

		//Element
		public RuleCall getChildrenElementParserRuleCall_4_3_0() { return cChildrenElementParserRuleCall_4_3_0; }

		//(',' children+=Element)*
		public Group getGroup_4_4() { return cGroup_4_4; }

		//','
		public Keyword getCommaKeyword_4_4_0() { return cCommaKeyword_4_4_0; }

		//children+=Element
		public Assignment getChildrenAssignment_4_4_1() { return cChildrenAssignment_4_4_1; }

		//Element
		public RuleCall getChildrenElementParserRuleCall_4_4_1_0() { return cChildrenElementParserRuleCall_4_4_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_4_5() { return cRightCurlyBracketKeyword_4_5; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class AttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Attribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAttributeAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cValueSTRINGTerminalRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Attribute bundle::Attribute:
		//	{bundle::Attribute}
		//	'{' name=STRING ',' value=STRING '}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::Attribute} '{' name=STRING ',' value=STRING '}'
		public Group getGroup() { return cGroup; }

		//{bundle::Attribute}
		public Action getAttributeAction_0() { return cAttributeAction_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//name=STRING
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_2_0() { return cNameSTRINGTerminalRuleCall_2_0; }

		//','
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }

		//value=STRING
		public Assignment getValueAssignment_4() { return cValueAssignment_4; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_4_0() { return cValueSTRINGTerminalRuleCall_4_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class RequiredBundleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.RequiredBundle");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRequiredBundleAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Alternatives cAlternatives_2_0 = (Alternatives)cGroup_2.eContents().get(0);
		private final Assignment cMinExclusiveAssignment_2_0_0 = (Assignment)cAlternatives_2_0.eContents().get(0);
		private final Keyword cMinExclusiveLeftParenthesisKeyword_2_0_0_0 = (Keyword)cMinExclusiveAssignment_2_0_0.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_2_0_1 = (Keyword)cAlternatives_2_0.eContents().get(1);
		private final Assignment cMinVersionAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cMinVersionVersionParserRuleCall_2_1_0 = (RuleCall)cMinVersionAssignment_2_1.eContents().get(0);
		private final Keyword cCommaKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
		private final Assignment cMaxVersionAssignment_2_3 = (Assignment)cGroup_2.eContents().get(3);
		private final RuleCall cMaxVersionVersionParserRuleCall_2_3_0 = (RuleCall)cMaxVersionAssignment_2_3.eContents().get(0);
		private final Alternatives cAlternatives_2_4 = (Alternatives)cGroup_2.eContents().get(4);
		private final Assignment cMaxExclusiveAssignment_2_4_0 = (Assignment)cAlternatives_2_4.eContents().get(0);
		private final Keyword cMaxExclusiveRightParenthesisKeyword_2_4_0_0 = (Keyword)cMaxExclusiveAssignment_2_4_0.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_2_4_1 = (Keyword)cAlternatives_2_4.eContents().get(1);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExcludedIfKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExcludeExpressionAssignment_3_1.eContents().get(0);
		
		//RequiredBundle bundle::RequiredBundle:
		//	{bundle::RequiredBundle} name=STRING ((minExclusive?='('? | '[') minVersion=Version? ',' maxVersion=Version?
		//	(maxExclusive?=')'? | ']'))? ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::RequiredBundle} name=STRING ((minExclusive?='('? | '[') minVersion=Version? ',' maxVersion=Version?
		//(maxExclusive?=')'? | ']'))? ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::RequiredBundle}
		public Action getRequiredBundleAction_0() { return cRequiredBundleAction_0; }

		//name=STRING
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//STRING
		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }

		//((minExclusive?='('? | '[') minVersion=Version? ',' maxVersion=Version? (maxExclusive?=')'? | ']'))?
		public Group getGroup_2() { return cGroup_2; }

		//minExclusive?='('? | '['
		public Alternatives getAlternatives_2_0() { return cAlternatives_2_0; }

		//minExclusive?='('?
		public Assignment getMinExclusiveAssignment_2_0_0() { return cMinExclusiveAssignment_2_0_0; }

		//'('
		public Keyword getMinExclusiveLeftParenthesisKeyword_2_0_0_0() { return cMinExclusiveLeftParenthesisKeyword_2_0_0_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_2_0_1() { return cLeftSquareBracketKeyword_2_0_1; }

		//minVersion=Version?
		public Assignment getMinVersionAssignment_2_1() { return cMinVersionAssignment_2_1; }

		//Version
		public RuleCall getMinVersionVersionParserRuleCall_2_1_0() { return cMinVersionVersionParserRuleCall_2_1_0; }

		//','
		public Keyword getCommaKeyword_2_2() { return cCommaKeyword_2_2; }

		//maxVersion=Version?
		public Assignment getMaxVersionAssignment_2_3() { return cMaxVersionAssignment_2_3; }

		//Version
		public RuleCall getMaxVersionVersionParserRuleCall_2_3_0() { return cMaxVersionVersionParserRuleCall_2_3_0; }

		//maxExclusive?=')'? | ']'
		public Alternatives getAlternatives_2_4() { return cAlternatives_2_4; }

		//maxExclusive?=')'?
		public Assignment getMaxExclusiveAssignment_2_4_0() { return cMaxExclusiveAssignment_2_4_0; }

		//')'
		public Keyword getMaxExclusiveRightParenthesisKeyword_2_4_0_0() { return cMaxExclusiveRightParenthesisKeyword_2_4_0_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_2_4_1() { return cRightSquareBracketKeyword_2_4_1; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_3() { return cGroup_3; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_3_0() { return cExcludedIfKeyword_3_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_3_1() { return cExcludeExpressionAssignment_3_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0; }
	}

	public class LinkedStringElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.LinkedString");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cLinkedStringAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLinkedStringKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cWeburlAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cWeburlSTRINGTerminalRuleCall_2_0 = (RuleCall)cWeburlAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cValueSTRINGTerminalRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//LinkedString bundle::LinkedString:
		//	{bundle::LinkedString}
		//	'LinkedString' weburl=STRING '{'
		//	value=STRING
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//{bundle::LinkedString} 'LinkedString' weburl=STRING '{' value=STRING '}'
		public Group getGroup() { return cGroup; }

		//{bundle::LinkedString}
		public Action getLinkedStringAction_0() { return cLinkedStringAction_0; }

		//'LinkedString'
		public Keyword getLinkedStringKeyword_1() { return cLinkedStringKeyword_1; }

		//weburl=STRING
		public Assignment getWeburlAssignment_2() { return cWeburlAssignment_2; }

		//STRING
		public RuleCall getWeburlSTRINGTerminalRuleCall_2_0() { return cWeburlSTRINGTerminalRuleCall_2_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//value=STRING
		public Assignment getValueAssignment_4() { return cValueAssignment_4; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_4_0() { return cValueSTRINGTerminalRuleCall_4_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class FeaturePluginElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.FeaturePlugin");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cFeaturePluginAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cUnpackAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cUnpackUnpackedKeyword_1_0 = (Keyword)cUnpackAssignment_1.eContents().get(0);
		private final Assignment cFragmentAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Keyword cFragmentFragmentKeyword_2_0 = (Keyword)cFragmentAssignment_2.eContents().get(0);
		private final Assignment cIdAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cIdSTRINGTerminalRuleCall_3_0 = (RuleCall)cIdAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cExcludedIfKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_4_1_0 = (RuleCall)cExcludeExpressionAssignment_4_1.eContents().get(0);
		
		//FeaturePlugin bundle::FeaturePlugin:
		//	{bundle::FeaturePlugin} unpack?='unpacked'? ^fragment?='fragment'? id=STRING ('excluded-if'
		//	excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::FeaturePlugin} unpack?='unpacked'? ^fragment?='fragment'? id=STRING ('excluded-if'
		//excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::FeaturePlugin}
		public Action getFeaturePluginAction_0() { return cFeaturePluginAction_0; }

		//unpack?='unpacked'?
		public Assignment getUnpackAssignment_1() { return cUnpackAssignment_1; }

		//'unpacked'
		public Keyword getUnpackUnpackedKeyword_1_0() { return cUnpackUnpackedKeyword_1_0; }

		//^fragment?='fragment'?
		public Assignment getFragmentAssignment_2() { return cFragmentAssignment_2; }

		//'fragment'
		public Keyword getFragmentFragmentKeyword_2_0() { return cFragmentFragmentKeyword_2_0; }

		//id=STRING
		public Assignment getIdAssignment_3() { return cIdAssignment_3; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_3_0() { return cIdSTRINGTerminalRuleCall_3_0; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_4() { return cGroup_4; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_4_0() { return cExcludedIfKeyword_4_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_4_1() { return cExcludeExpressionAssignment_4_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_4_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_4_1_0; }
	}

	public class RequiredFeatureElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.RequiredFeature");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRequiredFeatureAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cIdSTRINGTerminalRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
		private final Assignment cMatchAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cMatchMatchRuleEnumRuleCall_2_0 = (RuleCall)cMatchAssignment_2.eContents().get(0);
		private final Assignment cVersionAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cVersionVersionParserRuleCall_3_0 = (RuleCall)cVersionAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cExcludedIfKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_4_1_0 = (RuleCall)cExcludeExpressionAssignment_4_1.eContents().get(0);
		
		//RequiredFeature bundle::RequiredFeature:
		//	{bundle::RequiredFeature} id=STRING match=MatchRule version=Version ('excluded-if'
		//	excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::RequiredFeature} id=STRING match=MatchRule version=Version ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::RequiredFeature}
		public Action getRequiredFeatureAction_0() { return cRequiredFeatureAction_0; }

		//id=STRING
		public Assignment getIdAssignment_1() { return cIdAssignment_1; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_1_0() { return cIdSTRINGTerminalRuleCall_1_0; }

		//match=MatchRule
		public Assignment getMatchAssignment_2() { return cMatchAssignment_2; }

		//MatchRule
		public RuleCall getMatchMatchRuleEnumRuleCall_2_0() { return cMatchMatchRuleEnumRuleCall_2_0; }

		//version=Version
		public Assignment getVersionAssignment_3() { return cVersionAssignment_3; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_3_0() { return cVersionVersionParserRuleCall_3_0; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_4() { return cGroup_4; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_4_0() { return cExcludedIfKeyword_4_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_4_1() { return cExcludeExpressionAssignment_4_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_4_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_4_1_0; }
	}

	public class IncludedFeatureElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.IncludedFeature");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cIncludedFeatureAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cIdSTRINGTerminalRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
		private final Assignment cVersionAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cVersionVersionParserRuleCall_2_0 = (RuleCall)cVersionAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExcludedIfKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExcludeExpressionAssignment_3_1.eContents().get(0);
		
		//IncludedFeature bundle::IncludedFeature:
		//	{bundle::IncludedFeature} id=STRING version=Version? ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::IncludedFeature} id=STRING version=Version? ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::IncludedFeature}
		public Action getIncludedFeatureAction_0() { return cIncludedFeatureAction_0; }

		//id=STRING
		public Assignment getIdAssignment_1() { return cIdAssignment_1; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_1_0() { return cIdSTRINGTerminalRuleCall_1_0; }

		//version=Version?
		public Assignment getVersionAssignment_2() { return cVersionAssignment_2; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_2_0() { return cVersionVersionParserRuleCall_2_0; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_3() { return cGroup_3; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_3_0() { return cExcludedIfKeyword_3_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_3_1() { return cExcludeExpressionAssignment_3_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0; }
	}

	public class ProductFeatureElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ProductFeature");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cProductFeatureAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cIdSTRINGTerminalRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
		private final Assignment cVersionAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cVersionSTRINGTerminalRuleCall_2_0 = (RuleCall)cVersionAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExcludedIfKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExcludeExpressionAssignment_3_1.eContents().get(0);
		
		////ProductPlugin returns bundle::ProductPlugin:
		////	{bundle::ProductPlugin}
		////	id=STRING version=Version?
		////;
		//ProductFeature bundle::ProductFeature:
		//	{bundle::ProductFeature} id=STRING version=STRING? ('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ProductFeature} id=STRING version=STRING? ('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::ProductFeature}
		public Action getProductFeatureAction_0() { return cProductFeatureAction_0; }

		//id=STRING
		public Assignment getIdAssignment_1() { return cIdAssignment_1; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_1_0() { return cIdSTRINGTerminalRuleCall_1_0; }

		//version=STRING?
		public Assignment getVersionAssignment_2() { return cVersionAssignment_2; }

		//STRING
		public RuleCall getVersionSTRINGTerminalRuleCall_2_0() { return cVersionSTRINGTerminalRuleCall_2_0; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_3() { return cGroup_3; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_3_0() { return cExcludedIfKeyword_3_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_3_1() { return cExcludeExpressionAssignment_3_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0; }
	}

	public class ProductStartConfigElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.ProductStartConfig");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cProductStartConfigAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cIdSTRINGTerminalRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Assignment cAutoStartAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
		private final Keyword cAutoStartAutostartedKeyword_2_0_0 = (Keyword)cAutoStartAssignment_2_0.eContents().get(0);
		private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1);
		private final Keyword cAtKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
		private final Assignment cStartLevelAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
		private final Alternatives cStartLevelAlternatives_2_1_1_0 = (Alternatives)cStartLevelAssignment_2_1_1.eContents().get(0);
		private final RuleCall cStartLevelSIGNED_INTTerminalRuleCall_2_1_1_0_0 = (RuleCall)cStartLevelAlternatives_2_1_1_0.eContents().get(0);
		private final RuleCall cStartLevelINTTerminalRuleCall_2_1_1_0_1 = (RuleCall)cStartLevelAlternatives_2_1_1_0.eContents().get(1);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cExcludedIfKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cExcludeExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExcludeExpressionAssignment_3_1.eContents().get(0);
		
		//ProductStartConfig bundle::ProductStartConfig:
		//	{bundle::ProductStartConfig} id=STRING (autoStart?='autostarted' ('at' startLevel=(SIGNED_INT | INT))?)?
		//	('excluded-if' excludeExpression=BooleanExpression)?;
		@Override public ParserRule getRule() { return rule; }

		//{bundle::ProductStartConfig} id=STRING (autoStart?='autostarted' ('at' startLevel=(SIGNED_INT | INT))?)? ('excluded-if'
		//excludeExpression=BooleanExpression)?
		public Group getGroup() { return cGroup; }

		//{bundle::ProductStartConfig}
		public Action getProductStartConfigAction_0() { return cProductStartConfigAction_0; }

		//id=STRING
		public Assignment getIdAssignment_1() { return cIdAssignment_1; }

		//STRING
		public RuleCall getIdSTRINGTerminalRuleCall_1_0() { return cIdSTRINGTerminalRuleCall_1_0; }

		//(autoStart?='autostarted' ('at' startLevel=(SIGNED_INT | INT))?)?
		public Group getGroup_2() { return cGroup_2; }

		//autoStart?='autostarted'
		public Assignment getAutoStartAssignment_2_0() { return cAutoStartAssignment_2_0; }

		//'autostarted'
		public Keyword getAutoStartAutostartedKeyword_2_0_0() { return cAutoStartAutostartedKeyword_2_0_0; }

		//('at' startLevel=(SIGNED_INT | INT))?
		public Group getGroup_2_1() { return cGroup_2_1; }

		//'at'
		public Keyword getAtKeyword_2_1_0() { return cAtKeyword_2_1_0; }

		//startLevel=(SIGNED_INT | INT)
		public Assignment getStartLevelAssignment_2_1_1() { return cStartLevelAssignment_2_1_1; }

		//(SIGNED_INT | INT)
		public Alternatives getStartLevelAlternatives_2_1_1_0() { return cStartLevelAlternatives_2_1_1_0; }

		//SIGNED_INT
		public RuleCall getStartLevelSIGNED_INTTerminalRuleCall_2_1_1_0_0() { return cStartLevelSIGNED_INTTerminalRuleCall_2_1_1_0_0; }

		//INT
		public RuleCall getStartLevelINTTerminalRuleCall_2_1_1_0_1() { return cStartLevelINTTerminalRuleCall_2_1_1_0_1; }

		//('excluded-if' excludeExpression=BooleanExpression)?
		public Group getGroup_3() { return cGroup_3; }

		//'excluded-if'
		public Keyword getExcludedIfKeyword_3_0() { return cExcludedIfKeyword_3_0; }

		//excludeExpression=BooleanExpression
		public Assignment getExcludeExpressionAssignment_3_1() { return cExcludeExpressionAssignment_3_1; }

		//BooleanExpression
		public RuleCall getExcludeExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExcludeExpressionBooleanExpressionParserRuleCall_3_1_0; }
	}

	public class VersionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Version");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cINTTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final RuleCall cINTTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cFullStopKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final RuleCall cIDTerminalRuleCall_5_1 = (RuleCall)cGroup_5.eContents().get(1);
		
		//Version bundle::Version:
		//	INT '.' INT '.' INT ('.' ID)? /* TODO: implement this rule and an appropriate IValueConverter */;
		@Override public ParserRule getRule() { return rule; }

		//INT '.' INT '.' INT ('.' ID)?
		public Group getGroup() { return cGroup; }

		//INT
		public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }

		//'.'
		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }

		//INT
		public RuleCall getINTTerminalRuleCall_2() { return cINTTerminalRuleCall_2; }

		//'.'
		public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }

		//INT
		public RuleCall getINTTerminalRuleCall_4() { return cINTTerminalRuleCall_4; }

		//('.' ID)?
		public Group getGroup_5() { return cGroup_5; }

		//'.'
		public Keyword getFullStopKeyword_5_0() { return cFullStopKeyword_5_0; }

		//ID
		public RuleCall getIDTerminalRuleCall_5_1() { return cIDTerminalRuleCall_5_1; }
	}
	
	
	public class TypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Type");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cBOOLEANEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cBOOLEANBOOLEANKeyword_0_0 = (Keyword)cBOOLEANEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cDOUBLEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cDOUBLEDOUBLEKeyword_1_0 = (Keyword)cDOUBLEEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cINTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cINTINTKeyword_2_0 = (Keyword)cINTEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cSTRINGEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cSTRINGSTRINGKeyword_3_0 = (Keyword)cSTRINGEnumLiteralDeclaration_3.eContents().get(0);
		
		//enum Type returns task::Type:
		//	BOOLEAN | DOUBLE | INT | STRING;
		public EnumRule getRule() { return rule; }

		//BOOLEAN | DOUBLE | INT | STRING
		public Alternatives getAlternatives() { return cAlternatives; }

		//BOOLEAN
		public EnumLiteralDeclaration getBOOLEANEnumLiteralDeclaration_0() { return cBOOLEANEnumLiteralDeclaration_0; }

		//"BOOLEAN"
		public Keyword getBOOLEANBOOLEANKeyword_0_0() { return cBOOLEANBOOLEANKeyword_0_0; }

		//DOUBLE
		public EnumLiteralDeclaration getDOUBLEEnumLiteralDeclaration_1() { return cDOUBLEEnumLiteralDeclaration_1; }

		//"DOUBLE"
		public Keyword getDOUBLEDOUBLEKeyword_1_0() { return cDOUBLEDOUBLEKeyword_1_0; }

		//INT
		public EnumLiteralDeclaration getINTEnumLiteralDeclaration_2() { return cINTEnumLiteralDeclaration_2; }

		//"INT"
		public Keyword getINTINTKeyword_2_0() { return cINTINTKeyword_2_0; }

		//STRING
		public EnumLiteralDeclaration getSTRINGEnumLiteralDeclaration_3() { return cSTRINGEnumLiteralDeclaration_3; }

		//"STRING"
		public Keyword getSTRINGSTRINGKeyword_3_0() { return cSTRINGSTRINGKeyword_3_0; }
	}

	public class CardinalityElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Cardinality");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cSINGLE_OPTIONALEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cSINGLE_OPTIONALSINGLE_OPTIONALKeyword_0_0 = (Keyword)cSINGLE_OPTIONALEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cSINGLE_REQUIREDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cSINGLE_REQUIREDSINGLE_REQUIREDKeyword_1_0 = (Keyword)cSINGLE_REQUIREDEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cMULTI_OPTIONALEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cMULTI_OPTIONALMULTI_OPTIONALKeyword_2_0 = (Keyword)cMULTI_OPTIONALEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cMULTI_REQUIREDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cMULTI_REQUIREDMULTI_REQUIREDKeyword_3_0 = (Keyword)cMULTI_REQUIREDEnumLiteralDeclaration_3.eContents().get(0);
		
		//enum Cardinality returns bundle::Cardinality:
		//	SINGLE_OPTIONAL | SINGLE_REQUIRED | MULTI_OPTIONAL | MULTI_REQUIRED;
		public EnumRule getRule() { return rule; }

		//SINGLE_OPTIONAL | SINGLE_REQUIRED | MULTI_OPTIONAL | MULTI_REQUIRED
		public Alternatives getAlternatives() { return cAlternatives; }

		//SINGLE_OPTIONAL
		public EnumLiteralDeclaration getSINGLE_OPTIONALEnumLiteralDeclaration_0() { return cSINGLE_OPTIONALEnumLiteralDeclaration_0; }

		//"SINGLE_OPTIONAL"
		public Keyword getSINGLE_OPTIONALSINGLE_OPTIONALKeyword_0_0() { return cSINGLE_OPTIONALSINGLE_OPTIONALKeyword_0_0; }

		//SINGLE_REQUIRED
		public EnumLiteralDeclaration getSINGLE_REQUIREDEnumLiteralDeclaration_1() { return cSINGLE_REQUIREDEnumLiteralDeclaration_1; }

		//"SINGLE_REQUIRED"
		public Keyword getSINGLE_REQUIREDSINGLE_REQUIREDKeyword_1_0() { return cSINGLE_REQUIREDSINGLE_REQUIREDKeyword_1_0; }

		//MULTI_OPTIONAL
		public EnumLiteralDeclaration getMULTI_OPTIONALEnumLiteralDeclaration_2() { return cMULTI_OPTIONALEnumLiteralDeclaration_2; }

		//"MULTI_OPTIONAL"
		public Keyword getMULTI_OPTIONALMULTI_OPTIONALKeyword_2_0() { return cMULTI_OPTIONALMULTI_OPTIONALKeyword_2_0; }

		//MULTI_REQUIRED
		public EnumLiteralDeclaration getMULTI_REQUIREDEnumLiteralDeclaration_3() { return cMULTI_REQUIREDEnumLiteralDeclaration_3; }

		//"MULTI_REQUIRED"
		public Keyword getMULTI_REQUIREDMULTI_REQUIREDKeyword_3_0() { return cMULTI_REQUIREDMULTI_REQUIREDKeyword_3_0; }
	}

	public class PolicyElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.Policy");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cDYNAMICEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cDYNAMICDYNAMICKeyword_0_0 = (Keyword)cDYNAMICEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cSTATICEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cSTATICSTATICKeyword_1_0 = (Keyword)cSTATICEnumLiteralDeclaration_1.eContents().get(0);
		
		//enum Policy returns bundle::Policy:
		//	DYNAMIC | STATIC;
		public EnumRule getRule() { return rule; }

		//DYNAMIC | STATIC
		public Alternatives getAlternatives() { return cAlternatives; }

		//DYNAMIC
		public EnumLiteralDeclaration getDYNAMICEnumLiteralDeclaration_0() { return cDYNAMICEnumLiteralDeclaration_0; }

		//"DYNAMIC"
		public Keyword getDYNAMICDYNAMICKeyword_0_0() { return cDYNAMICDYNAMICKeyword_0_0; }

		//STATIC
		public EnumLiteralDeclaration getSTATICEnumLiteralDeclaration_1() { return cSTATICEnumLiteralDeclaration_1; }

		//"STATIC"
		public Keyword getSTATICSTATICKeyword_1_0() { return cSTATICSTATICKeyword_1_0; }
	}

	public class MatchRuleElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.MatchRule");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cNoneEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cNoneNoneKeyword_0_0 = (Keyword)cNoneEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cEquivalentEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cEquivalentEquivalentKeyword_1_0 = (Keyword)cEquivalentEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cCompatibleEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cCompatibleCompatibleKeyword_2_0 = (Keyword)cCompatibleEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cPerfectEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cPerfectPerfectKeyword_3_0 = (Keyword)cPerfectEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cGreaterOrEqualEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cGreaterOrEqualGreaterOrEqualKeyword_4_0 = (Keyword)cGreaterOrEqualEnumLiteralDeclaration_4.eContents().get(0);
		
		//enum MatchRule returns bundle::MatchRule:
		//	none | equivalent | compatible | perfect | greaterOrEqual;
		public EnumRule getRule() { return rule; }

		//none | equivalent | compatible | perfect | greaterOrEqual
		public Alternatives getAlternatives() { return cAlternatives; }

		//none
		public EnumLiteralDeclaration getNoneEnumLiteralDeclaration_0() { return cNoneEnumLiteralDeclaration_0; }

		//"none"
		public Keyword getNoneNoneKeyword_0_0() { return cNoneNoneKeyword_0_0; }

		//equivalent
		public EnumLiteralDeclaration getEquivalentEnumLiteralDeclaration_1() { return cEquivalentEnumLiteralDeclaration_1; }

		//"equivalent"
		public Keyword getEquivalentEquivalentKeyword_1_0() { return cEquivalentEquivalentKeyword_1_0; }

		//compatible
		public EnumLiteralDeclaration getCompatibleEnumLiteralDeclaration_2() { return cCompatibleEnumLiteralDeclaration_2; }

		//"compatible"
		public Keyword getCompatibleCompatibleKeyword_2_0() { return cCompatibleCompatibleKeyword_2_0; }

		//perfect
		public EnumLiteralDeclaration getPerfectEnumLiteralDeclaration_3() { return cPerfectEnumLiteralDeclaration_3; }

		//"perfect"
		public Keyword getPerfectPerfectKeyword_3_0() { return cPerfectPerfectKeyword_3_0; }

		//greaterOrEqual
		public EnumLiteralDeclaration getGreaterOrEqualEnumLiteralDeclaration_4() { return cGreaterOrEqualEnumLiteralDeclaration_4; }

		//"greaterOrEqual"
		public Keyword getGreaterOrEqualGreaterOrEqualKeyword_4_0() { return cGreaterOrEqualGreaterOrEqualKeyword_4_0; }
	}
	
	private final RobotTaskElements pRobotTask;
	private final VariableElements pVariable;
	private final TypeElements eType;
	private final GenericProjectElements pGenericProject;
	private final ResourceElements pResource;
	private final ProjectElements pProject;
	private final EStringElements pEString;
	private final FolderElements pFolder;
	private final TemplatedFileElements pTemplatedFile;
	private final DataFileElements pDataFile;
	private final URLFileElements pURLFile;
	private final DynamicFileElements pDynamicFile;
	private final ComponentDefinitionFileElements pComponentDefinitionFile;
	private final ComponentReferenceElements pComponentReference;
	private final CardinalityElements eCardinality;
	private final PolicyElements ePolicy;
	private final BooleanExpressionElements pBooleanExpression;
	private final ReferencingBooleanExpressionElements pReferencingBooleanExpression;
	private final InlineBooleanExpressionElements pInlineBooleanExpression;
	private final EByteArrayElements pEByteArray;
	private final BundleProjectElements pBundleProject;
	private final SourceFragmentElements pSourceFragment;
	private final CompilationUnitElements pCompilationUnit;
	private final FeatureProjectElements pFeatureProject;
	private final ManifestFileElements pManifestFile;
	private final PluginXMLFileElements pPluginXMLFile;
	private final BuildPropertiesElements pBuildProperties;
	private final ProductFileFeaturebaseElements pProductFileFeaturebase;
	private final FeatureFileElements pFeatureFile;
	private final ImportedPackageElements pImportedPackage;
	private final ExportedPackageElements pExportedPackage;
	private final ExtensionElements pExtension;
	private final ElementElements pElement;
	private final AttributeElements pAttribute;
	private final RequiredBundleElements pRequiredBundle;
	private final LinkedStringElements pLinkedString;
	private final FeaturePluginElements pFeaturePlugin;
	private final RequiredFeatureElements pRequiredFeature;
	private final IncludedFeatureElements pIncludedFeature;
	private final ProductFeatureElements pProductFeature;
	private final ProductStartConfigElements pProductStartConfig;
	private final VersionElements pVersion;
	private final MatchRuleElements eMatchRule;
	private final TerminalRule tSL_DOC;
	private final TerminalRule tINLINE_SCRIPT;
	private final TerminalRule tSIGNED_INT;
	
	private final Grammar grammar;

	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public RTaskGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pRobotTask = new RobotTaskElements();
		this.pVariable = new VariableElements();
		this.eType = new TypeElements();
		this.pGenericProject = new GenericProjectElements();
		this.pResource = new ResourceElements();
		this.pProject = new ProjectElements();
		this.pEString = new EStringElements();
		this.pFolder = new FolderElements();
		this.pTemplatedFile = new TemplatedFileElements();
		this.pDataFile = new DataFileElements();
		this.pURLFile = new URLFileElements();
		this.pDynamicFile = new DynamicFileElements();
		this.pComponentDefinitionFile = new ComponentDefinitionFileElements();
		this.pComponentReference = new ComponentReferenceElements();
		this.eCardinality = new CardinalityElements();
		this.ePolicy = new PolicyElements();
		this.pBooleanExpression = new BooleanExpressionElements();
		this.pReferencingBooleanExpression = new ReferencingBooleanExpressionElements();
		this.pInlineBooleanExpression = new InlineBooleanExpressionElements();
		this.pEByteArray = new EByteArrayElements();
		this.pBundleProject = new BundleProjectElements();
		this.pSourceFragment = new SourceFragmentElements();
		this.pCompilationUnit = new CompilationUnitElements();
		this.pFeatureProject = new FeatureProjectElements();
		this.pManifestFile = new ManifestFileElements();
		this.pPluginXMLFile = new PluginXMLFileElements();
		this.pBuildProperties = new BuildPropertiesElements();
		this.pProductFileFeaturebase = new ProductFileFeaturebaseElements();
		this.pFeatureFile = new FeatureFileElements();
		this.pImportedPackage = new ImportedPackageElements();
		this.pExportedPackage = new ExportedPackageElements();
		this.pExtension = new ExtensionElements();
		this.pElement = new ElementElements();
		this.pAttribute = new AttributeElements();
		this.pRequiredBundle = new RequiredBundleElements();
		this.pLinkedString = new LinkedStringElements();
		this.pFeaturePlugin = new FeaturePluginElements();
		this.pRequiredFeature = new RequiredFeatureElements();
		this.pIncludedFeature = new IncludedFeatureElements();
		this.pProductFeature = new ProductFeatureElements();
		this.pProductStartConfig = new ProductStartConfigElements();
		this.pVersion = new VersionElements();
		this.eMatchRule = new MatchRuleElements();
		this.tSL_DOC = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.SL_DOC");
		this.tINLINE_SCRIPT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.INLINE_SCRIPT");
		this.tSIGNED_INT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.rrobot.dsl.RTask.SIGNED_INT");
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.eclipse.fx.ide.rrobot.dsl.RTask".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//RobotTask task::RobotTask:
	//	{task::RobotTask}
	//	'RobotTask'
	//	'{' ('variables' '=' '{' variables+=Variable ("," variables+=Variable)* '}')? ('projects' '=' '{'
	//	projects+=GenericProject ("," projects+=GenericProject)* '}')?
	//	'}';
	public RobotTaskElements getRobotTaskAccess() {
		return pRobotTask;
	}
	
	public ParserRule getRobotTaskRule() {
		return getRobotTaskAccess().getRule();
	}

	//Variable task::Variable:
	//	description=SL_DOC
	//	type=Type key=STRING ('default' defaultValue=STRING)?;
	public VariableElements getVariableAccess() {
		return pVariable;
	}
	
	public ParserRule getVariableRule() {
		return getVariableAccess().getRule();
	}

	//enum Type returns task::Type:
	//	BOOLEAN | DOUBLE | INT | STRING;
	public TypeElements getTypeAccess() {
		return eType;
	}
	
	public EnumRule getTypeRule() {
		return getTypeAccess().getRule();
	}

	//GenericProject task::Project:
	//	Project | BundleProject | FeatureProject;
	public GenericProjectElements getGenericProjectAccess() {
		return pGenericProject;
	}
	
	public ParserRule getGenericProjectRule() {
		return getGenericProjectAccess().getRule();
	}

	//Resource task::Resource:
	//	Folder | TemplatedFile | DataFile | URLFile | DynamicFile | ManifestFile | ProductFileFeaturebase | PluginXMLFile |
	//	ComponentDefinitionFile;
	public ResourceElements getResourceAccess() {
		return pResource;
	}
	
	public ParserRule getResourceRule() {
		return getResourceAccess().getRule();
	}

	//Project task::Project:
	//	{task::Project}
	//	'SimpleProject' name=EString
	//	'{' ('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public ProjectElements getProjectAccess() {
		return pProject;
	}
	
	public ParserRule getProjectRule() {
		return getProjectAccess().getRule();
	}

	//EString:
	//	STRING | ID;
	public EStringElements getEStringAccess() {
		return pEString;
	}
	
	public ParserRule getEStringRule() {
		return getEStringAccess().getRule();
	}

	//Folder task::Folder:
	//	{task::Folder}
	//	'Folder'
	//	name=EString ('{'
	//	'children' '=' '{' children+=Resource ("," children+=Resource)* '}'
	//	'}')?;
	public FolderElements getFolderAccess() {
		return pFolder;
	}
	
	public ParserRule getFolderRule() {
		return getFolderAccess().getRule();
	}

	//TemplatedFile task::TemplatedFile:
	//	{task::TemplatedFile}
	//	'TemplatedFile'
	//	name=EString
	//	'{' ('generatorType' '=' generatorType=EString)?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public TemplatedFileElements getTemplatedFileAccess() {
		return pTemplatedFile;
	}
	
	public ParserRule getTemplatedFileRule() {
		return getTemplatedFileAccess().getRule();
	}

	//DataFile task::DataFile:
	//	{task::DataFile}
	//	'DataFile'
	//	name=EString
	//	'{' ('content' '=' content=EByteArray)?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public DataFileElements getDataFileAccess() {
		return pDataFile;
	}
	
	public ParserRule getDataFileRule() {
		return getDataFileAccess().getRule();
	}

	//URLFile task::URLFile:
	//	{task::URLFile}
	//	'URLFile'
	//	name=EString uri=EString ('excluded-if' excludeExpression=BooleanExpression)?;
	public URLFileElements getURLFileAccess() {
		return pURLFile;
	}
	
	public ParserRule getURLFileRule() {
		return getURLFileAccess().getRule();
	}

	//DynamicFile task::DynamicFile:
	//	{task::DynamicFile}
	//	'DynamicFile' name=EString 'generated-from' executionURI=STRING 'by' type=STRING ('{' variables+=Variable (','
	//	variables+=Variable)* '}')? ('excluded-if' excludeExpression=BooleanExpression)?;
	public DynamicFileElements getDynamicFileAccess() {
		return pDynamicFile;
	}
	
	public ParserRule getDynamicFileRule() {
		return getDynamicFileAccess().getRule();
	}

	//ComponentDefinitionFile bundle::ComponentDefinitionFile:
	//	{bundle::ComponentDefinitionFile}
	//	'ComponentDefinition' name=EString '{' ('name' '=' id=EString
	//	&
	//	'class' '=' componentClass=EString)
	//	'services' '=' '{' serviceInterfaceList+=EString (',' serviceInterfaceList+=EString)* '}'
	//	'references' '=' '{' referenceList+=ComponentReference (',' referenceList+=ComponentReference)* '}'
	//	'}';
	public ComponentDefinitionFileElements getComponentDefinitionFileAccess() {
		return pComponentDefinitionFile;
	}
	
	public ParserRule getComponentDefinitionFileRule() {
		return getComponentDefinitionFileAccess().getRule();
	}

	//ComponentReference bundle::ComponentReference:
	//	{bundle::ComponentReference} name=ID '{' ('bind' '=' bind=ID
	//	&
	//	'unbind' '=' unbind=ID
	//	&
	//	'class' '=' typeName=EString
	//	&
	//	'cardinality' '=' cardinality=Cardinality
	//	&
	//	'policy' '=' policy=Policy)
	//	'}';
	public ComponentReferenceElements getComponentReferenceAccess() {
		return pComponentReference;
	}
	
	public ParserRule getComponentReferenceRule() {
		return getComponentReferenceAccess().getRule();
	}

	//enum Cardinality returns bundle::Cardinality:
	//	SINGLE_OPTIONAL | SINGLE_REQUIRED | MULTI_OPTIONAL | MULTI_REQUIRED;
	public CardinalityElements getCardinalityAccess() {
		return eCardinality;
	}
	
	public EnumRule getCardinalityRule() {
		return getCardinalityAccess().getRule();
	}

	//enum Policy returns bundle::Policy:
	//	DYNAMIC | STATIC;
	public PolicyElements getPolicyAccess() {
		return ePolicy;
	}
	
	public EnumRule getPolicyRule() {
		return getPolicyAccess().getRule();
	}

	//BooleanExpression task::BooleanExpression:
	//	ReferencingBooleanExpression | InlineBooleanExpression;
	public BooleanExpressionElements getBooleanExpressionAccess() {
		return pBooleanExpression;
	}
	
	public ParserRule getBooleanExpressionRule() {
		return getBooleanExpressionAccess().getRule();
	}

	//ReferencingBooleanExpression task::ReferencingBooleanExpression:
	//	executionURI=STRING 'by' type=STRING;
	public ReferencingBooleanExpressionElements getReferencingBooleanExpressionAccess() {
		return pReferencingBooleanExpression;
	}
	
	public ParserRule getReferencingBooleanExpressionRule() {
		return getReferencingBooleanExpressionAccess().getRule();
	}

	//InlineBooleanExpression task::InlineBooleanExpression:
	//	type=STRING expression=INLINE_SCRIPT;
	public InlineBooleanExpressionElements getInlineBooleanExpressionAccess() {
		return pInlineBooleanExpression;
	}
	
	public ParserRule getInlineBooleanExpressionRule() {
		return getInlineBooleanExpressionAccess().getRule();
	}

	//EByteArray ecore::EByteArray:
	//	EString /* TODO: implement this rule and an appropriate IValueConverter */;
	public EByteArrayElements getEByteArrayAccess() {
		return pEByteArray;
	}
	
	public ParserRule getEByteArrayRule() {
		return getEByteArrayAccess().getRule();
	}

	//BundleProject bundle::BundleProject:
	//	{bundle::BundleProject}
	//	'BundleProject'
	//	name=EString '{' ('manifest' '=' manifest=ManifestFile
	//	&
	//	'build' '=' buildProperties=BuildProperties
	//	& ('pluginxml' '=' pluginxml=PluginXMLFile)?) ('resources' '=' '{' resources+=Resource ("," resources+=Resource)*
	//	'}')?
	//	'rootfragments' '=' '{' sourceFragments+=SourceFragment ("," sourceFragments+=SourceFragment)* '}'
	//	('compilation-units' '=' '{' compilationUnits+=CompilationUnit (',' compilationUnits+=CompilationUnit)* '}')?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public BundleProjectElements getBundleProjectAccess() {
		return pBundleProject;
	}
	
	public ParserRule getBundleProjectRule() {
		return getBundleProjectAccess().getRule();
	}

	//SourceFragment task::SourceFragment:
	//	'fragment' name=EString folder=[task::Folder|STRING];
	public SourceFragmentElements getSourceFragmentAccess() {
		return pSourceFragment;
	}
	
	public ParserRule getSourceFragmentRule() {
		return getSourceFragmentAccess().getRule();
	}

	//CompilationUnit task::CompilationUnit:
	//	packagename=STRING 'in' sourcefragment=[task::SourceFragment|STRING] '{' file=(TemplatedFile | DataFile | URLFile |
	//	DynamicFile) '}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public CompilationUnitElements getCompilationUnitAccess() {
		return pCompilationUnit;
	}
	
	public ParserRule getCompilationUnitRule() {
		return getCompilationUnitAccess().getRule();
	}

	//FeatureProject bundle::FeatureProject:
	//	{bundle::FeatureProject}
	//	'FeatureProject'
	//	name=EString '{'
	//	'feature' '=' feature=FeatureFile ('resources' '=' '{' resources+=Resource ("," resources+=Resource)* '}')?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public FeatureProjectElements getFeatureProjectAccess() {
		return pFeatureProject;
	}
	
	public ParserRule getFeatureProjectRule() {
		return getFeatureProjectAccess().getRule();
	}

	//ManifestFile bundle::ManifestFile:
	//	{bundle::ManifestFile} lazy?='lazy'? singleton?='singleton'? 'ManifestFile' symbolicname=STRING version=STRING
	//	executionEnvironment=STRING '{' ('bundlename' '=' bundlename=STRING
	//	&
	//	'vendor' '=' vendor=STRING
	//	& ('activatorClass' '=' activatorClass=STRING)?) ('exportedPackages' '=' '{' exportedPackages+=ExportedPackage (','
	//	exportedPackages+=ExportedPackage)* '}')? ('importedPackages' '=' '{' importedPackages+=ImportedPackage (','
	//	importedPackages+=ImportedPackage)* '}')? ('requiredBundles' '=' '{' requiredBundles+=RequiredBundle (','
	//	requiredBundles+=RequiredBundle)* '}')?
	//	'}';
	public ManifestFileElements getManifestFileAccess() {
		return pManifestFile;
	}
	
	public ParserRule getManifestFileRule() {
		return getManifestFileAccess().getRule();
	}

	//PluginXMLFile bundle::PluginXMLFile:
	//	{bundle::PluginXMLFile}
	//	'PluginXMLFile' '{' ('extensions' '=' '{' extensions+=Extension (',' extensions+=Extension)* '}')?
	//	'}';
	public PluginXMLFileElements getPluginXMLFileAccess() {
		return pPluginXMLFile;
	}
	
	public ParserRule getPluginXMLFileRule() {
		return getPluginXMLFileAccess().getRule();
	}

	//BuildProperties bundle::BuildProperties:
	//	{bundle::BuildProperties}
	//	'BuildProperties' '{' ('binIncludes' '=' '{' binIncludes+=[task::Resource|STRING] (','
	//	binIncludes+=[task::Resource|STRING])* '}')?
	//	'}';
	public BuildPropertiesElements getBuildPropertiesAccess() {
		return pBuildProperties;
	}
	
	public ParserRule getBuildPropertiesRule() {
		return getBuildPropertiesAccess().getRule();
	}

	//ProductFileFeaturebase bundle::ProductFileFeaturebase:
	//	{bundle::ProductFileFeaturebase} includeLaunchers?='launchable'? 'ProductFileFeaturebase' id=STRING '{' (('vmArgs' '='
	//	vmArgs=STRING)?
	//	& ('programArgs' '=' programArgs=STRING)?
	//	&
	//	'productName' '=' productName=STRING
	//	&
	//	'application' '=' application=STRING
	//	&
	//	'version' '=' version=STRING) ('startconfigurations' '=' '{'
	//	startconfigurations+=ProductStartConfig (',' startconfigurations+=ProductStartConfig)*
	//	'}')? ('features' '=' '{'
	//	features+=ProductFeature (',' features+=ProductFeature)*
	//	'}')?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public ProductFileFeaturebaseElements getProductFileFeaturebaseAccess() {
		return pProductFileFeaturebase;
	}
	
	public ParserRule getProductFileFeaturebaseRule() {
		return getProductFileFeaturebaseAccess().getRule();
	}

	//FeatureFile bundle::FeatureFile:
	//	{bundle::FeatureFile}
	//	'FeatureFile' featureid=STRING '{' ('version' '=' version=STRING
	//	&
	//	'featurename' '=' featurename=STRING
	//	&
	//	'vendor' '=' vendor=STRING
	//	&
	//	'description' '=' description=LinkedString
	//	&
	//	'copyright' '=' copyright=LinkedString
	//	&
	//	'license' '=' license=LinkedString
	//	& ('license-feature' '=' license_feature=STRING
	//	&
	//	'license-feature-version' '=' license_feature_version=Version)?) ('plugins' '=' '{'
	//	plugins+=FeaturePlugin (',' plugins+=FeaturePlugin)*
	//	'}')? ('required' '=' '{' requiredfeatures+=RequiredFeature (',' requiredfeatures+=RequiredFeature)* '}')? ('included'
	//	'=' '{' includedfeatures+=IncludedFeature (',' includedfeatures+=IncludedFeature)* '}')?
	//	'}';
	public FeatureFileElements getFeatureFileAccess() {
		return pFeatureFile;
	}
	
	public ParserRule getFeatureFileRule() {
		return getFeatureFileAccess().getRule();
	}

	//ImportedPackage bundle::ImportedPackage:
	//	{bundle::ImportedPackage} name=STRING ((minExclusive?='('? | '[') minVersion=Version? ',' (maxVersion=Version?
	//	(maxExclusive?=')'? | ']')))? ('excluded-if' excludeExpression=BooleanExpression)?;
	public ImportedPackageElements getImportedPackageAccess() {
		return pImportedPackage;
	}
	
	public ParserRule getImportedPackageRule() {
		return getImportedPackageAccess().getRule();
	}

	//ExportedPackage bundle::ExportedPackage:
	//	{bundle::ExportedPackage} name=STRING version=Version? ('excluded-if' excludeExpression=BooleanExpression)?;
	public ExportedPackageElements getExportedPackageAccess() {
		return pExportedPackage;
	}
	
	public ParserRule getExportedPackageRule() {
		return getExportedPackageAccess().getRule();
	}

	//Extension bundle::Extension:
	//	{bundle::Extension} point=STRING '{' ('id' '=' id=STRING)? ('elements' '=' '{'
	//	elements+=Element (',' elements+=Element)*
	//	'}')?
	//	'}' ('excluded-if' excludeExpression=BooleanExpression)?;
	public ExtensionElements getExtensionAccess() {
		return pExtension;
	}
	
	public ParserRule getExtensionRule() {
		return getExtensionAccess().getRule();
	}

	//Element bundle::Element:
	//	{bundle::Element} name=STRING '{' ('attributes' '=' '{'
	//	attributes+=Attribute (',' attributes+=Attribute)*
	//	'}')? ('children' '=' '{'
	//	children+=Element (',' children+=Element)*
	//	'}')?
	//	'}';
	public ElementElements getElementAccess() {
		return pElement;
	}
	
	public ParserRule getElementRule() {
		return getElementAccess().getRule();
	}

	//Attribute bundle::Attribute:
	//	{bundle::Attribute}
	//	'{' name=STRING ',' value=STRING '}';
	public AttributeElements getAttributeAccess() {
		return pAttribute;
	}
	
	public ParserRule getAttributeRule() {
		return getAttributeAccess().getRule();
	}

	//RequiredBundle bundle::RequiredBundle:
	//	{bundle::RequiredBundle} name=STRING ((minExclusive?='('? | '[') minVersion=Version? ',' maxVersion=Version?
	//	(maxExclusive?=')'? | ']'))? ('excluded-if' excludeExpression=BooleanExpression)?;
	public RequiredBundleElements getRequiredBundleAccess() {
		return pRequiredBundle;
	}
	
	public ParserRule getRequiredBundleRule() {
		return getRequiredBundleAccess().getRule();
	}

	//LinkedString bundle::LinkedString:
	//	{bundle::LinkedString}
	//	'LinkedString' weburl=STRING '{'
	//	value=STRING
	//	'}';
	public LinkedStringElements getLinkedStringAccess() {
		return pLinkedString;
	}
	
	public ParserRule getLinkedStringRule() {
		return getLinkedStringAccess().getRule();
	}

	//FeaturePlugin bundle::FeaturePlugin:
	//	{bundle::FeaturePlugin} unpack?='unpacked'? ^fragment?='fragment'? id=STRING ('excluded-if'
	//	excludeExpression=BooleanExpression)?;
	public FeaturePluginElements getFeaturePluginAccess() {
		return pFeaturePlugin;
	}
	
	public ParserRule getFeaturePluginRule() {
		return getFeaturePluginAccess().getRule();
	}

	//RequiredFeature bundle::RequiredFeature:
	//	{bundle::RequiredFeature} id=STRING match=MatchRule version=Version ('excluded-if'
	//	excludeExpression=BooleanExpression)?;
	public RequiredFeatureElements getRequiredFeatureAccess() {
		return pRequiredFeature;
	}
	
	public ParserRule getRequiredFeatureRule() {
		return getRequiredFeatureAccess().getRule();
	}

	//IncludedFeature bundle::IncludedFeature:
	//	{bundle::IncludedFeature} id=STRING version=Version? ('excluded-if' excludeExpression=BooleanExpression)?;
	public IncludedFeatureElements getIncludedFeatureAccess() {
		return pIncludedFeature;
	}
	
	public ParserRule getIncludedFeatureRule() {
		return getIncludedFeatureAccess().getRule();
	}

	////ProductPlugin returns bundle::ProductPlugin:
	////	{bundle::ProductPlugin}
	////	id=STRING version=Version?
	////;
	//ProductFeature bundle::ProductFeature:
	//	{bundle::ProductFeature} id=STRING version=STRING? ('excluded-if' excludeExpression=BooleanExpression)?;
	public ProductFeatureElements getProductFeatureAccess() {
		return pProductFeature;
	}
	
	public ParserRule getProductFeatureRule() {
		return getProductFeatureAccess().getRule();
	}

	//ProductStartConfig bundle::ProductStartConfig:
	//	{bundle::ProductStartConfig} id=STRING (autoStart?='autostarted' ('at' startLevel=(SIGNED_INT | INT))?)?
	//	('excluded-if' excludeExpression=BooleanExpression)?;
	public ProductStartConfigElements getProductStartConfigAccess() {
		return pProductStartConfig;
	}
	
	public ParserRule getProductStartConfigRule() {
		return getProductStartConfigAccess().getRule();
	}

	//Version bundle::Version:
	//	INT '.' INT '.' INT ('.' ID)? /* TODO: implement this rule and an appropriate IValueConverter */;
	public VersionElements getVersionAccess() {
		return pVersion;
	}
	
	public ParserRule getVersionRule() {
		return getVersionAccess().getRule();
	}

	//enum MatchRule returns bundle::MatchRule:
	//	none | equivalent | compatible | perfect | greaterOrEqual;
	public MatchRuleElements getMatchRuleAccess() {
		return eMatchRule;
	}
	
	public EnumRule getMatchRuleRule() {
		return getMatchRuleAccess().getRule();
	}

	//terminal SL_DOC:
	//	'##' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_DOCRule() {
		return tSL_DOC;
	} 

	//terminal INLINE_SCRIPT:
	//	'/#'->'#/';
	public TerminalRule getINLINE_SCRIPTRule() {
		return tINLINE_SCRIPT;
	} 

	//terminal SIGNED_INT returns ecore::EInt:
	//	'-' INT;
	public TerminalRule getSIGNED_INTRule() {
		return tSIGNED_INT;
	} 

	//terminal ID:
	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	} 

	//terminal INT returns ecore::EInt:
	//	'0'..'9'+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	} 

	//terminal STRING:
	//	'"' ('\\' . | !('\\' | '"'))* '"' |
	//	"'" ('\\' . | !('\\' | "'"))* "'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	'/*'->'*/';
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	' ' | '\t' | '\r' | '\n'+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}
